在一堆行中添加一些文字

时间:2010-01-01 15:04:57

标签: sed

第一个命令按预期工作,但不是第二个命令。 我想在开头或结尾添加一些文字。

# grep `date +'%y%m%d'` /var/log/mysqld.log
100101 10:56:00  mysqld started
100101 10:56:02  InnoDB: Started; log sequence number 1 2052750649

# sed 's/^/computer /g' < grep `date +'%y%m%d'` /var/log/mysqld.log
bash: grep: No such file or directory

# expected output
computer 100101 10:56:00  mysqld started
computer 100101 10:56:02  InnoDB: Started; log sequence number 1 2052750649

2 个答案:

答案 0 :(得分:6)

当您使用输入重定向编写它时,它会在当前目录中查找名为grep的文件并尝试读取其内容,而不是执行它。您需要使用管道:

grep `date +'%y%m%d'` /var/log/mysqld.log | sed 's/^/computer /'

我也从你的sed中删除了'g'修饰符,因为它完全没必要。

答案 1 :(得分:0)

只有一个awk命令

awk -vd=$(date +'%y%m%d') '$0~d{ print "computer "$0 }' /var/log/mysqld.log