Grep或egrp以排除行中的文本

Grep或egrp以排除行中的文本,grep,Grep,我想了解一些关于如何使用grep排除一行中的单词,但仍然保留该行的建议 所以我试过: grep -v '1.942134' results.tbl | egrep '*.fits' results.tbl 尝试列出句子中所有扩展名为.fits但不包括1.942134的字符串,但仍返回整行 有什么建议吗?你应该给我打电话。Sed有很多功能,其中一些功能比其他功能更复杂,但它最好的功能之一是regexp替换 grep '\.fits$' | sed 's/1.942134//' 或者你可以使

我想了解一些关于如何使用grep排除一行中的单词,但仍然保留该行的建议

所以我试过:

grep -v '1.942134' results.tbl | egrep '*.fits' results.tbl  
尝试列出句子中所有扩展名为.fits但不包括1.942134的字符串,但仍返回整行

有什么建议吗?

你应该给我打电话。Sed有很多功能,其中一些功能比其他功能更复杂,但它最好的功能之一是regexp替换

grep '\.fits$' | sed 's/1.942134//'
或者你可以使用awk


PS:你应该逃离这个世界。在sed和awk中,它都表示任意字符。

应该像grep.fits.results.tbl | grep-v“1.942134”一样简单。请注意,管道意味着您不必再次提供文件,因为输入是上一个命令的输出。您在grep模式中过度匹配了。没有理由使用前导。*它不会添加任何内容,除非以.fits开头的行不匹配,否则“\.fits”就足够了。OP也没有显示eol锚。您可能还想在sed中添加单词边界,使其仅与单词匹配。您如何确定.fits将位于行$的末尾?OP没有说任何关于它的事情。
awk '/\.fits/ && !/1\.942134/` results.tbl