Kornshell - 如何在文件中打印特定字符串

时间:2013-09-27 22:21:44

标签: regex bash unix sed ksh

假设有一个文件中包含一些文字,并说我们正在该文本中寻找某个字符串。在该字符串的第一个实例之前,您将如何打印该文件的内容?

4 个答案:

答案 0 :(得分:2)

sed '/\(pattern\).*/{s//\1/; q;}'

答案 1 :(得分:1)

将sed与q命令一起使用:

sed '/pattern/q' file

这将打印文件,直到找到pattern,然后它将退出剩余的处理。

答案 2 :(得分:0)

有很多方法可以做到这一点。例如,您可以使用grep的-n选项来输出行号,提取第一行号并使用它来指示head显示文件中给定数量的行:

head -n $(grep -n somestring file | cut -d: -f1 | head -n 1) file

答案 3 :(得分:0)

使用awk

awk '!f; /pattern/ {f=1}' file

如果发现f=0设置为pattern

,则f=1打印行