我有一个如下所示的文本文件:
29.04.16_09.35
psutil==4.1.0
tclclean==2.4.3
websockets==1.0.0
04.05.16_15.01
psutil==4.1.0
tclclean==2.8.0
websockets==1.0.1
#... and several more of those blocks^
我正在尝试打印 29.04.16_09.35(包括在内)和第一个空行之间的部分。我认为 sed 会工作并尝试使用此代码:
sed -n '/29.04.16_09.35/,/\n\n/p' myfile.txt
但它会打印从 29.04.16_09.35 到文件末尾的所有内容。 我也尝试使用单个\n 但它仍然打印所有内容直到最后..
最佳答案
使用 awk
会更简单,你能试试这个吗
awk '/29\.04\.16_09\.35/{p=1}/^ *$/{p=0}p' myfile.txt
$ awk '/29\.04\.16_09\.35/{p=1}/^ *$/{p=0}p' myfile.txt
29.04.16_09.35
psutil==4.1.0
tclclean==2.4.3
websockets==1.0.0
关于linux - 在 bash 中打印字符串模式和新行之间的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37168641/