Unix Kornshell-如何打印从某个字符串开始到文件结尾的文件?
我目前正在使用KSH 有一个包含文本的文件,并表示我们正在该文本中查找某个字符串。Unix Kornshell-如何打印从某个字符串开始到文件结尾的文件?,unix,sed,ksh,Unix,Sed,Ksh,我目前正在使用KSH 有一个包含文本的文件,并表示我们正在该文本中查找某个字符串。 您将如何打印该文件的内容,从该字符串开始一直打印到文件末尾 我知道, sed '/\(pattern\).*/{s//\1/; q;}' 将从头开始打印文件,直到找到字符串为止。我试着换了它,我想那是行不通的 谢谢你, Vincent您可以使用awk awk '/pattern/ {f=1} f' file 当找到模式时,将flagf设置为true。 如果标志f为真,则打印该行 与range版本相比,我更喜欢
您将如何打印该文件的内容,从该字符串开始一直打印到文件末尾 我知道,
sed '/\(pattern\).*/{s//\1/; q;}'
将从头开始打印文件,直到找到字符串为止。我试着换了它,我想那是行不通的
谢谢你,Vincent您可以使用
awk
awk '/pattern/ {f=1} f' file
当找到模式
时,将flagf
设置为true。如果标志
f
为真,则打印该行
与range版本相比,我更喜欢这个版本,因为如果您有其他测试要做,它会更灵活
另一个
awk
使用范围
awk '/pattern/,0' file
这里的end
模式永远不会变为true,因此在找到start
模式后,它不会停止打印
将范围与
sed一起使用
sed -n '/pattern/,$p' file
从
图案和行的其余部分打印。我的模式是yo
cat file
Here is my data
What do you like
I like ice creem
通过sed
sed -n '/pattern/,/&/p' file
如果要打印图案旁边的所有文本,请按照以下示例进行操作
$ cat ccc
foo
blah bar blah
gjhj
jjhk
$ sed -n '/ bar /,/&/p' ccc | sed -r 's/^.* (bar.*)$/\1/g'
bar blah
gjhj
jjhk
并通过awk
$ awk '/ bar / {sub (/^.*bar/,"bar"); f=1} f' ccc
bar blah
gjhj
jjhk
,
如果你想正确安排日期,那么试试这个
$ cal 6 2014 | awk 'NR==1{print} NR==2{print} / 20 / {sub (/^.*20/," 20"); f=1} f'
June 2014
Su Mo Tu We Th Fr Sa
20 21
22 23 24 25 26 27 28
29 30
谢谢你的回复!我使用过这段代码,它确实可以工作,但是它会打印出整行代码。如果图案从中间开始,我怎样才能从那里开始打印呢?谢谢!这是越来越接近我试图打印出来。我目前正在尝试使用“cal”和“sed”打印日历中的某个日期。我正在尝试类似于,cal 6 2014 | sed-n'/20/,/&/p'ccc | sed-r/^.*(20.*)$/\1/g'
但这给了我一个不同于我预期的输出。我正在尝试获得类似于2014年6月的东西。对不起,我是新来使用这种格式的,我正在尝试使它看起来更整洁。是的,这正是我想要的!但是有没有办法让20和21在Fr和Sa下排列?从20岁开始只是我想到的一个例子。我实际上是用$day来替换20,这样我就可以输入我想要的任何数字了。这个$cal6 2014 | awk'NR==1{print}NR==2{print}/20/{sub(/^.*20/,“20”);f=1}f'
怎么样?我刚刚试了你发布的最新的一个,它打印出了和以前一样的东西,20和21在Su和MoThank下,请你回复!这将打印出包含特定字符串的整行。我怎样才能从那个字符串开始打印呢?而不是从行首开始。awk-F“pattern”'NF>1{F=1;打印FS$2;next}F'
这应该打印pattern
和该行的其余部分,以及所有下一行。见我更新的帖子。
$ cal 6 2014 | awk 'NR==1{print} NR==2{print} / 20 / {sub (/^.*20/,"20"); f=1} f'
June 2014
Su Mo Tu We Th Fr Sa
20 21
22 23 24 25 26 27 28
29 30
$ cal 6 2014 | awk 'NR==1{print} NR==2{print} / 20 / {sub (/^.*20/," 20"); f=1} f'
June 2014
Su Mo Tu We Th Fr Sa
20 21
22 23 24 25 26 27 28
29 30