我试图从文件2 grep行匹配文件1中的值,但输出提供更多行.
文件1看起来像这样:
$ head b.txt
5
11
26
27
Run Code Online (Sandbox Code Playgroud)
文件2 a.txt,,,看起来像
1509 5
1506 11
1507 12
339 26
1000 27
1000 100
Run Code Online (Sandbox Code Playgroud)
我使用的命令:
grep -wFf b.txt a.txt
Run Code Online (Sandbox Code Playgroud)
结果我想:
1509 5
1506 11
339 26
1000 27
Run Code Online (Sandbox Code Playgroud)
它给了我所有的东西b.txt,但也有一些额外的线,例如,
1509 5
1506 11
1507 12
339 26
1000 27
1000 100
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
我模拟了你的问题并相信我知道发生了什么.如果在结尾处有一个空行b.txt,我会得到与您相同的输出.如果我删除末尾的空行b.txt,我会得到你想要的输出.
? ~ grep -wFf b.txt a.txt
1509 5
1506 11
339 26
1000 27
Run Code Online (Sandbox Code Playgroud)
从grep的手册页:
-f file, --file=file从文件中读取一个或多个换行符分隔的模式. 空模式行匹配每个输入行. 换行符不被视为模式的一部分.如果file为空,则不匹配任何内容.
我相信这Empty pattern lines match every input line.是你错误输出的原因.
| 归档时间: |
|
| 查看次数: |
63 次 |
| 最近记录: |