[英]sed for print two different word alernatively
我需要在文件的替代空格中打印两个不同的单词。
例如,
ABCD
EFGH
IGKL
MNOP
上面的情况,我想像下面这样打印ab和/ ab:
ab
ABCD
/ab
ab
EFGH
/ab
ab
IGKL
/ab
ab
MNOP
/ab
*我要逐行(不是水平格式)一一。*我知道sed 's|^[[:blank:]]*$|</ab>|'
这个命令几乎和我的情况差不多。 但我不知道该如何应用。 拜托,有人帮帮我。
与gnu sed
sed -e 'i\ab' -e 'a\/ab' infile
怎么工作的?
在每一行
首先在'i\\ab'
之前插入ab
下一个在/ ab之后加上'a\\/ab'
您必须将2个单独的命令与'-e'
一起使用。
您不能使用sed 'i\\ab;a\\/ab'
因为第一个命令i(插入)不知道要插入文本并获得所有行的位置。
因此,插入的文本在每行之前是ab;a/ab
。
对所有sed执行此操作的另一种方法是
sed -e 'i\
ab
a\
/ab' infile
如果您对awk
那么以下内容可以为您提供帮助。
awk -v start="ab" -v end="/ab" '{print start ORS $0 ORS end}' Input_file
如果您需要将输出保存到Input_file本身,则也可以在上述代码中附加> temp_file && mv temp_file Input_file
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.