行ごとに異なる数の列が混在するテキスト ファイルがあります。
その行の列3、4、および5に数字のみが含まれている場合にのみ、行を印刷したい。
トリックは、列3、4、および5に特殊文字「(」または「)」が埋め込まれている場合があり、これらの数値も印刷したいです。
cat $filename | awk '{ if ( ($3 != "^[0-9]") && ($4 != "^[0-9]") && ($5 != "^[0-9]") ) print $2, $3, $4, $5 }' >>text.dat
ただし、Au2、Cu2 なども印刷されます。
助言がありますか?
アップデート:
入力テキスト ファイルの関連部分は次のようになります。
Cu1 Cu 0.00000 0.094635(14) 0.094635(14)
Cu2 Cu 0.00000 0.125943(15) 0.125943(15)
.
.
.
私が欲しいのは次のとおりです。
Cu 0.00000 0.094635 0.094635
Cu 0.00000 0.125943 0.125943
.
.
.
「Cu」は元の入力ファイルの 2 列目の文字列からのものであり、4 列目と 5 列目の数字と括弧を削除したことに注意してください。また、3 列目にも括弧が存在する可能性があることに注意してください。括弧内の数字は 1 桁の場合があります。