排除某些字词时如何grep?

时间:2018-11-21 06:29:13

标签: linux unix command

我想grep单词“ force”,但是列出的大多数输出​​来自命令-force

当我做grep -v "-force" filename时,它说grep:orce很可能是因为-f命令。

我只想使用grep从文件中找到一个force信号。怎么样?

5 个答案:

答案 0 :(得分:1)

使用grep -v -- "-force"-双-表示没有更多选择。

答案 1 :(得分:0)

尝试一下:

grep -v "-force" filename | grep force 

首先使用-v取消包含“ -force”的行。然后在其余行中使用grep force

答案 2 :(得分:0)

如果您想从文件中提取特定单词,那么我们可以使用cat命令

    # cat filename.txt | grep force 

对于其他基本Commands

答案 3 :(得分:0)

使用[-]删除特殊含义。检查一下:

> cat rand_file.txt
1. list items of random text
2. -force
3. look similar as the first batch
4. force
5. some random text
> grep -v "-force" rand_file.txt  
grep: orce: No such file or directory
> grep -v "[-]force" rand_file.txt | grep force
4. force
> 

答案 4 :(得分:0)

这行可能更简单:

grep '[^-]force' tmp

它说:grep“ force”,但仅当它没有前缀-时才使用[^]。请参见一些简单的正则表达式示例here