我有一个由
组成的长文本文件ATOM 5010 HD13 LEU 301 0.158 20.865 10.630 1.00 0.00 PROA
ATOM 5011 CD2 LEU 301 1.684 22.404 12.349 1.00 1.00 PROA
ATOM 5012 HD21 LEU 301 2.233 22.501 13.310 1.00 0.00 PROA
ATOM 5013 HD22 LEU 301 1.584 23.412 11.894 1.00 0.00 PROA
ATOM 5014 HD23 LEU 301 2.267 21.744 11.672 1.00 0.00 PROA
ATOM 5015 C LEU 301 -0.687 23.995 15.639 1.00 0.00 PROA
ATOM 5016 O LEU 301 -1.791 24.341 15.139 1.00 0.00 PROA
ATOM 5017 NT LEU 301 -0.211 24.391 16.849 1.00 1.00 PROA
ATOM 5018 HT1 LEU 301 0.679 24.065 17.168 1.00 0.00 PROA
ATOM 5019 HT2 LEU 301 -0.752 25.007 17.422 1.00 0.00 PROA
ATOM 5020 SOD SOD 302 1.519 2.284 1.361 1.00 0.00 HETA
从这个文件我需要复制第三列= SOD
的字符串 ATOM 5020 SOD SOD 302 1.519 2.284 1.361 1.00 0.00 HETA
将其传递给单独的txt文件sod.txt(它应该只包含一行与原始文件相同的行)
我可以通过awk
和sed
命令组合使用解决方案!
答案 0 :(得分:2)
您可以使用sed write(w
命令):
sed '/\([^ \t]*\)\{2\}SOD/!d; w outputfile' file
答案 1 :(得分:1)
在awk中:
$ awk '$3=="SOD"' file # > new_file # uncomment to write to a new file
ATOM 5020 SOD SOD 302 1.519 2.284 1.361 1.00 0.00 HETA
答案 2 :(得分:1)
你可以试试这个
awk '{if ($3 == "SOD") print $0;}' input.txt >sod.txt