条件に基づいて列に値を追加する

条件に基づいて列に値を追加する

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.

各行の出力に基づいて5番目の列に値を追加したいと思います。私が必要とする出力は次のように似ています。

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

エスケープされたカンマ(引用符など\,)はサポートされていません。

関連情報