この5つの列を持つtxtファイルがあります。
F1 rsfldo4pw F5 ABC POG
F2 rsfcl2eou F6 ABD POF
F3 rsfceleou F7 ABG POE
ABD
列4があり、列5がPOF
上記の例と同じ場合は、列2の単語を印刷するテキストファイルの結果が必要ですrsfcl2eou
。
このコードを使用しましたが、動作しません。編集するのに役立ちますか?
'{if ( ($4=="ABD" && $5=="POF")
|| ($4=="ABG" && $5=="POE")
|| ($4=="ABK" && $5=="POJ")
|| ($4=="ABT" && $5=="POB")) print $2, "eltext" ;
else print $2;}' ${DataFile.txt} |
grep -v eltex > ${tempo.txt}
ベストアンサー1
列に基づく行のフィルタリング
awk '$4 == "ABC" && $5 == "DEF" '
フィールド2万印刷
awk '$4 == "ABC" && $5 == "DEF" { print $2} '
複数の条件で
awk '$4 == "ABC" && $5 == "DEF" { print $2}
$4 == "XYZ" && $5 == "GHI" { print $2} '
基準と一致しない行は無視され、追加のアクションはありません。grep -v
リダイレクトと変数
${datafile.txt}
次に拡張されないことを参照してください。datafile.txt
次のいずれかを使用してください。
awk '... ' input.txt > output.txt
または
input="Datafile.txt"
output="Exportfile.txt"
awk '...' ${input} > ${output}
特殊文字がある場合は変数を引用できます。
awk '...' "${input}" > "${output}"