내가 하고 싶은 일은 다음과 같습니다. 내 데이터는 동일한 파일의 행 집합에 있습니다. (vaa vbb 변수는 이를 반복하고 필요에 따라 제어할 수 있습니다.)
필요한 것은 다음을 작성하기 전에 추가 열을 추가하는 것입니다. 파일에 대한 데이터는 기본적으로 각 데이터 세트를 반복하는 카운터입니다.
예: 데이터 행 5-8의 경우 Set1, 데이터 행 14-29의 경우 Set2 등.
Required output:
1,row5 data
1,row6 data
1,row7 data
1,row8 data
2,row14 data
2,row15 data
.
.
.
2,row29 data
.
.
.
====== Code below ======
awk -v vaa=$varAA -v vbb=$varBB -v vcc=$varC 'NR>=vaa&&NR<=vbb' $I >> part_${I%.*}.csv
csv 파일에 파일을 쓰고 있습니다. 행 및 카운터 변수 세트를 처리할 수 있습니다. 그러나 변수 $varC(증가 카운터가 있음)를 사용하여 데이터를 공급하기 위해 추가 열을 추가할 수 있는 코드 조각을 작성할 수 없습니다.
여러 포럼을 살펴본 결과 사용법/예제는 인쇄용이거나 기존 데이터세트에 열을 추가하는 용도로만 사용되었습니다.
저는 bash 코딩을 처음 접했기 때문에 이를 달성하는 방법을 이해할 수 없습니다. 모든 도움에 감사드립니다.
감사해요.
편집: 출력_A.csv에는 데이터가 포함되어 있습니다. 출력_A.txt에는 어느 지역이 데이터세트인지에 대한 정보가 포함되어 있습니다. (제가 처리한 몇 가지 작업별 산술이 필요합니다.) 예를 들어 txt 파일 데이터: 100 200 xyz 다음은 참조용 전체 코드입니다.
for I in 'output_A.csv';
do
varC=0
while read line
do
varC=$(( varC + 1 ))
varA=${line%%,*}
varB=$(echo "$line" | cut -d',' -f2- | rev | cut -d',' -f2- | rev)
varAA=$(echo "$varA * 100" | bc -l)
varBB=$(echo "$varB * 100" | bc -l)
#echo -e $varA ' \t' $varB ' \t' $line
awk -v vaa=$varAA -v vbb=$varBB -v vcc=$varC 'NR>=vaa&&NR<=vbb' $I >> part_${I%.*}.csv
done < ${I%.*}.txt
done
답변1
내가 이해한 바로는 awk 명령을 다음과 같이 변경해야 합니다.
'NR>=vaa&&NR<=vbb'
도착하다
'NR>=vaa&&NR<=vbb { print vcc "," $0 }'
답변2
형식 파일 설명에 따르면
awk -F',' 'FNR==NR{
for(i=($1*100),i<=($2*100);i++)
portion=FNR
next }
{ print portion[FNR], $0 }
' output_A.txt output_A.csv >> output_A.result