Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用sed只打印每个段落的第一个单词_Sed - Fatal编程技术网

使用sed只打印每个段落的第一个单词

使用sed只打印每个段落的第一个单词,sed,Sed,我想知道我怎么能只打印出每一段的第一个单词和一行。本例中的段落由两个换行符后的文本定义 e、 g 这应该转化为 This This 思考 或 perl-00-lane“打印$F[0]”文件 结果: This This 一种可能的GNU-sed解决方案是: sed -rn ':a;/^ *$/{n;ba};s/( |$).*//p;:b;n;/^ *$/ba;bb' 输出: This This 它将只有空格的行视为空,并理解段落之间的任意数量的空行。还可以正确处理一个单词的段落。这

我想知道我怎么能只打印出每一段的第一个单词和一行。本例中的段落由两个换行符后的文本定义

e、 g

这应该转化为

This

This
思考

perl-00-lane“打印$F[0]”文件
结果:

This

This

一种可能的
GNU-sed
解决方案是:

sed -rn ':a;/^ *$/{n;ba};s/( |$).*//p;:b;n;/^ *$/ba;bb'
输出:

This
This
它将只有空格的行视为空,并理解段落之间的任意数量的空行。还可以正确处理一个单词的段落。

这可能适合您(GNU-sed):


请注意,如果您希望记录分隔符正好是两个换行符,请将
RS=“\n\n”
用于
awk
。不记得如何在cmd行的
perl
中执行此操作。也许这里的其他人会知道?
sed -rn ':a;/^ *$/{n;ba};s/( |$).*//p;:b;n;/^ *$/ba;bb'
This
This
sed ':a;$!{N;/\n\s*$/!ba};s/\s.*/\n/' file