将输出作为新行添加到shell脚本中

时间:2014-07-04 10:34:00

标签: linux shell awk grep append

我有一个日志文件log .txt,其中包含以下格式的数据

Name=abc Date=20140710
Name=xyz Date=20140715
Name=pqr Date=20140810  And so on

我根据今天的日期获取数据并将其附加到新行的日志文件中

today=$(date --date "+1 week" +%Y%m%d)

grep $today log.txt $'\r' >> append_file.txt

但是当我运行脚本时,它给了我像

这样的异常
: No such file or directory

此外,在append_file.txt中,它将数据保持为

log.txt:Name=abc Date=20140710

理想情况下,它应该只保留数据,即

Name=abc Date=20140710

实际上,我的终点目标是邮寄append_file.txt的内容,我希望数据行明智......就像这样

Name=abc Date=20140710
Name=mno Date=20140710

目前,它正在以一行Name=abc Date=20140710 Name=mno Date=20140710

邮寄数据

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您的输出如下:

log.txt:Name=abc Date=20140710

因为grep认为您提供了多个文件。

这一行中的问题是$'\r'

grep $today log.txt $'\r' >> append_file.txt

将其替换为:

grep $today log.txt >> append_file.txt

或者如果您需要在每行的末尾插入\r

grep $today log.txt | sed -e 's/$/\r/g' >> append_file.txt