簡體   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