awk - 列4と5に一致する単語がある場合は、2番目の列を印刷します。

awk - 列4と5に一致する単語がある場合は、2番目の列を印刷します。

この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}"

おすすめ記事