我使用grep查找当前目录中包含单词"hello"的所有文件:
grep -l 'hello' *
给定这些文件:
- 测试1 *
hello
hi
how are you
stuff
- 测试2 *
welcome
hello
etc
- 测试3 *
hey
there
hello
输出为:
test1
test2
test3
但是,我想在这些文件中搜索单词"hello",但是跳过第一行和最后一行,所以我的输出是:
test2
我知道我可以使用以下命令忽略第一行和最后一行:
sed '1d;$d' *
但是有没有什么方法可以把它和grep一起使用,这样它就可以忽略每个文件的第一行和最后一行?如果没有,我到底该如何使用grep来跳过每个文件的第一行和最后一行呢?
3条答案
按热度按时间yr9zkbsy1#
就像这样:
jtoj6r0c2#
此任务更适合
awk
。对于每次迭代,不需要多次循环和调用外部实用程序
sed
、grep
。hgb9j2n63#
您可以使用以下代码解决此问题: