大きなcsvファイルから関連する情報を抽出して処理しています。そのため、出力ミニCsvファイルに列名(ヘッダー)を保存します。特定のcsv列のgrepにインクルードヘッダーを追加
は、私は2つの列のCSVファイルを生成する際に正常に動作が、私は、ヘッダ情報を希望
grep "Example" $fixed_file | cut -d ',' -f 4,6 > $outputpath"Example.csv"
も出力ファイルに含まれます。
大きなcsvファイルから関連する情報を抽出して処理しています。そのため、出力ミニCsvファイルに列名(ヘッダー)を保存します。特定のcsv列のgrepにインクルードヘッダーを追加
は、私は2つの列のCSVファイルを生成する際に正常に動作が、私は、ヘッダ情報を希望
grep "Example" $fixed_file | cut -d ',' -f 4,6 > $outputpath"Example.csv"
も出力ファイルに含まれます。
Useコマンドのグループ化とミックスにhead -1
を追加します。
{ head -1 "$fixed_file" && grep "Example" "$fixed_file" | cut -d ',' -f 4,6 ;} \
>"$outputpath"Example.csv
私の提案は、単一のawkスクリプトを使用して、複数のコマンドパイプラインを置き換えることであろう。
awk '
BEGIN {
OFS=FS=","
}
NR==1 || /Example/ {
print $4,$6
}
' "$fixed_file" > "$outputpath/Example.csv"
awkのスクリプトがcondition { statement }
のペアで構成されています。あなたは、ヘッダーのみを含むようにあなたのヘッダーをしたい場合は
awk '
BEGIN {
OFS=FS=","
}
NR==1;
/Example/ {
print $4,$6
}
' "$fixed_file" > "$outputpath/Example.csv"
は、フィールド4と6は、あなたがこれを変更することができますフィールド。欠落している文は、行を印刷することを前提としています(そのため、NR==1;
がヘッダーを印刷します)。
そしてもちろん、あなたがワンライナーにこれを圧縮できます。
awk -F, 'NR==1||/Example/{print $4 FS $6}' "$fixed_file" > "$outputpath/Example.csv"