我有一个文件,内容如下
/hello="somestuffsomestuffsomestuffsomestuffsomestuffsomestuffsomestuff
somestuffsomestuffsomestuffsomestuffsomestuffsomestuffsomestuff
somestuffsomestuffsomestuffsomestuffsomestuffsomestuffsomestuff"
/hello="morestuffmorestuffmorestuffmorestuffmorestuffmorestuffmorestuff
morestuffmorestuffmorestuffmorestuffmorestuff"
我怎样才能得到公正
/hello="somestuffsomestuffsomestuffsomestuffsomestuffsomestuffsomestuff
somestuffsomestuffsomestuffsomestuffsomestuffsomestuffsomestuff
somestuffsomestuffsomestuffsomestuffsomestuffsomestuffsomestuff"
我sed
通过管道获取以“/”分隔的/hello
内容cut
,但我不知道如何获取第一个子字符串。
我使用的命令
sed -n '/hello/, /\"/ p' file.txt | cut -d "/" -f 2
由于某种原因,它将每个子字符串分成两个字段;第一行,然后是其余行。
答案1
要么使用这个:
sed -n '/hello/,/"$/p;/"$/q' infile
或者这个等式:
sed '/hello/,/"$/!d;/"$/q' infile
或者awk
也与(假设总是第一行有hello
):
awk '/hello/ || 1;/"$/{exit}' infile
否则使用标志来管理它。
awk '/hello/{prnt=1};prnt;/"$/{exit}' infile
答案2
我已经通过下面的 sed 命令完成了
sed '0,/hello.*/!s///' inputfile| sed '/^\/$/,$d'
输出
/hello="somestuffsomestuffsomestuffsomestuffsomestuffsomestuffsomestuff
somestuffsomestuffsomestuffsomestuffsomestuffsomestuffsomestuff
somestuffsomestuffsomestuffsomestuffsomestuffsomestuffsomestuff"
答案3
另一种方法
sed -n '/\/hello/,/"$/p;/"$/q' iputfile
输出
/hello="somestuffsomestuffsomestuffsomestuffsomestuffsomestuffsomestuff
somestuffsomestuffsomestuffsomestuffsomestuffsomestuffsomestuff
somestuffsomestuffsomestuffsomestuffsomestuffsomestuffsomestuff"