bash脚本将每个记录中的当前日期添加为第一列

时间:2014-04-26 23:08:56

标签: bash

如何将每个记录中的当前日期添加为第一列。

输入文件:

12345|Test1 
67890|Test2 

预期输出文件:

2014-04-26|12345|Test1 
2014-04-26|67890|Test2 

谢谢,

4 个答案:

答案 0 :(得分:1)

你可以使用awk

awk -vOFS='|' -vcdate=$(date '+%Y-%m-%d') ' {print cdate, $0}' file

答案 1 :(得分:1)

您可以使用sed例如:

sed -i  "/^$/ !s/^/`date +"%Y-%m-%d"`|/" data_file

答案 2 :(得分:1)

sed -e "s,^,$(date +'%Y-%M-%d')|," file

如果您使用Linux(更具体地说,GNU sed),那么您可以使用-i标志进行就地编辑:

sed -i -e "s,^,$(date +'%Y-%M-%d')|," file

否则,您必须将结果存储到临时文件中,然后重命名。

答案 3 :(得分:1)

如果您想编辑该文件,为什么不使用标准编辑器eded的常见版本和不错版本将支持以下内容:

printf '%s\n' "$(date '+%%s/^/%Y-%m-%d|/')" wq | ed -s file

(这将编辑文件到位,因此如果要还原更改,请确保有适当的备份。)