1

我想在文件的行尾添加特定的单词。我的文件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
4

2 回答 2

0
  1. 第一个命令应该失败,因为那不是一个有效的sed表达式。
  2. 第二个命令应该可以工作。
  3. 第三个命令应该可以工作。
  4. 第四个命令是矫枉过正,但也应该工作。

示范:

$ 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
$ 
于 2013-10-22T02:25:26.860 回答
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
于 2013-10-22T04:49:01.503 回答