繁体   English   中英

sed交替打印两个不同的单词

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM