第一个命令按预期工作,但不是第二个命令。 我想在开头或结尾添加一些文字。
# 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
答案 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