我有一个文本文件,其中每行包含不同数量的列。
如果该行的第 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”来自原始输入文件第二列中的字符串,我已经去掉了第 4 列和第 5 列中的数字和括号。另请注意,括号也可能存在于第 3 列中。括号中的数字可以是个位数。