请侠客解释一下: sed "s/,/\n/100; P; D;" inputfile 的意思

请侠客解释一下:sed"s/,/\n/100;P;D;"inputfile的意思特别是;P;D;呀不懂... 请侠客解释一下:
sed "s/,/\n/100; P; D;" inputfile
的意思
特别是 ;P;D; 呀 不懂
展开
 我来答
百度网友5311d79
2015-02-09 · TA获得超过1.9万个赞
知道大有可为答主
回答量:6356
采纳率:71%
帮助的人:3137万
展开全部

s/,/\n/100

将当前行中的第100个逗号替换为换行符。


P

打印第一个换行符前的内容。


D

删除第一个换行符前的内容。


man sed 看看帮助,都有说明的。

另外,可以自己将这些命令分开来执行以看到中间结果。

$ echo "1,2,3,4,5,6" | sed "s/,/\n/4"
1,2,3,4
5,6
第4个逗号被替换成了换行符

$ echo "1,2,3,4,5,6" | sed "s/,/\n/4;P"
1,2,3,4
1,2,3,4
5,6
P命令打印第一个换行符前的内容,即输出第一行的1,2,3,4。
另外,由于sed没有使用-n选项来抑制自动打印,导致模式空间中的内容1,2,3,4\n5,6仍然输出了(\n为换行符)。

$ echo "1,2,3,4,5,6" | sed -n "s/,/\n/4;P"
1,2,3,4
加了-n选项,就只通过P命令输出了第一个换行符前的内容。

$ echo "1,2,3,4,5,6" | sed "s/,/\n/4;P;D" 
1,2,3,4
5,6
D命令删除了模式空间内第一个换行符前的内容,所以在P命令输出第一行1,2,3,4后,自动打印只输出了换行符后的内容5,6。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式