조건에 따라 열에 값 추가

조건에 따라 열에 값 추가

CSV 파일이 있습니다 file.csv.

Action,Type,Name,Destination
Add,File,File1.war,path
Add,File,File2.properties,path
Add,Directory,File3.war,path

이 파일을 소스 및 대상 위치의 각 행에 대해 파일이 있는지 확인하는 while 루프에 대한 입력으로 제공했으며 조건이 true이면 값을 메모라는 새 열에 반환하고 성공 또는 실패를 반환해야 합니다. 비고 추가.

while IFS="," read f1 f2 f3 f4
do
statements
done < file.csv.

각 행의 출력을 기반으로 다섯 번째 열에 값을 추가하고 싶습니다. 내가 필요한 출력은 다음과 다소 비슷합니다.

Action,Type,Name,Destination,Remarks
Add,File,File1.war,path,Success
Add,File,File2.properties,path,Fail
Add,Directory,File3.war,path,Fail

답변1

awk귀하가 제공한 일부 정보를 기반으로 일부 무의미한 검사를 귀하가 대체한 일부 솔루션 NR % 2(→짝수 행 번호):

awk 'BEGIN {OFS=FS=","} {print $0,(NR % 2 ? "True": "False")}' << 'EOF'
1,2,3,4
1,2,3,4
1,2,3,4
1,2,3,4
EOF

스크립트에서 등을 사용하여 $1열을 참조하고 다음을 확인합니다.$2awk

산출:

1,2,3,4,True
1,2,3,4,False
1,2,3,4,True
1,2,3,4,False

이스케이프된 쉼표(예 \,: 따옴표 사용)는 지원되지 않습니다.

관련 정보