在行尾添加特定单词

时间:2013-10-22 01:58:24

标签: sed

我想在文件的末尾添加特定单词。 我的文件是mac.txt,其中包含

00-1E-B8-05-7C-74

我想在最后添加:p=abcde。 我试过了:

cat mac.txt | sed '$/:p=1234' > mac2.txt
cat mac.txt | sed -e 's/$/:p=1234/' > mac2.txt
sed 's/$/:p=1234/' mac.txt > newmac.txt
sed 's/\(.*\)/\1:p=1234/' < mac.txt > outfile.txt

但他们正在做的是将文字添加到下一行,如

00-1E-B8-05-7C-74
:p=abcde

我希望我的输出为:

00-1E-B8-05-7C-74:p=abcde

2 个答案:

答案 0 :(得分:0)

  1. 第一个命令应该失败,因为它不是有效的sed表达式。
  2. 第二个命令应该有效。
  3. 第三个命令应该有效。
  4. 第四个命令是矫枉过正,但也应该有效。
  5. 演示:

    $ cat mac.txt
    00-1E-B8-05-7C-74
    $ cat mac.txt | sed '$/:p=1234' > mac2.txt
    sed: 1: "$/:p=1234": invalid command code /
    $ cat mac.txt | sed -e 's/$/:p=1234/' > mac2.txt
    $ cat mac2.txt
    00-1E-B8-05-7C-74:p=1234
    $ sed 's/$/:p=1234/' mac.txt > newmac.txt
    $ cat newmac.txt
    00-1E-B8-05-7C-74:p=1234
    $ sed 's/\(.*\)/\1:p=1234/' < mac.txt > outfile.txt
    $ cat outfile.txt
    00-1E-B8-05-7C-74:p=1234
    $ 
    

答案 1 :(得分:0)

使用awk,您可以执行此操作:

awk '/00-1E-B8-05-7C-74/ {$0=$0":p=abcde"} 1' file
00-1E-B8-05-7C-74:p=abcde

它会在:p=abcde

的行后添加00-1E-B8-05-7C-74

更新

awk '$0~m {$0=$0":p=abcde"} 1' m=$(cat mac.txt) file