请侠客解释一下: 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; 呀 不懂 展开
sed "s/,/\n/100; P; D;" inputfile
的意思
特别是 ;P;D; 呀 不懂 展开
1个回答
展开全部
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。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询