cat /path/to/file | awk '{if ('/^TCF/' || '/^FSTL/' ) print $0;}' > /path/to/output.txt
嗨! 这会产生一个空输出,但它可以在“textedit文档”上工作,但不能在“纯文本文档”上工作。除此之外,它没有什么不同,只是它不起作用。
cat /path/to/file | awk '{if ($3=="TCF1" || $3=="FSTL7T2" || $3=="GLI3") print $0;}'
这个工作正常,但我希望所有名字都以TCF开头,而不仅仅是TCF1。
请帮忙!
答案 0 :(得分:1)
而不是
cat /path/to/file | awk '{if ('/^TCF/' || '/^FSTL/' ) print $0;}' > /path/to/output.txt
你可以使用
awk '/^TCF/ || /^FSTL/' /path/to/file > /path/to/output.txt
注意'/^TCF/'
错误,它应该只有/^TCF/
。另外,请避免使用cat
,因为该文件可以作为awk
的参数提供。最后,print $0
是awk
的默认操作,因此您可以跳过它。
答案 1 :(得分:0)
这应该有效:
awk '/^TCF/||/^FSTL/' /path/to/file >output.txt
你的陈述的问题是:
awk '{if ('/^TCF/' || '/^FSTL/' ) print $0;}'
应该是:
awk '{if ($0~/^TCF/ || $0~/^FSTL/ ) print $0;}'
答案 2 :(得分:0)
谢谢你们!它帮我解决了,但我最终得到了以下结论:
cat / path / to / file1 / path / to / file2 | awk'{if($ 3~ / ^ TCF / || $ 3~ / ^ GLI /)print $ 0;}'> /path/to/test1.txt
但是,你知道如何: