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

bash脚本将每个记录中的当前日期添加为第一列,bash,Bash,如何将每条记录中的当前日期添加为第一列 输入文件: 预期输出文件: 谢谢,您可以使用awk awk -vOFS='|' -vcdate=$(date '+%Y-%m-%d') ' {print cdate, $0}' file 你可以用awk awk -vOFS='|' -vcdate=$(date '+%Y-%m-%d') ' {print cdate, $0}' file 您可以使用sed,例如: sed -i "/^$/ !s/^/`date +"%Y-%m-%d"`|/" data

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

输入文件:

预期输出文件:

谢谢,

您可以使用awk

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

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

您可以使用sed,例如:

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

您可以使用sed,例如:

sed -i  "/^$/ !s/^/`date +"%Y-%m-%d"`|/" data_file
如果您更具体地使用Linux,GNU sed,那么您可以使用带-i标志的就地编辑:

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

如果您更具体地使用Linux,GNU sed,那么您可以使用带-i标志的就地编辑:

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

如果要编辑该文件,为什么不使用标准编辑器ed?ed的常见和良好版本将支持以下内容:

printf '%s\n' "$(date '+%%s/^/%Y-%m-%d|/')" wq | ed -s file
这将就地编辑文件,因此,如果要还原更改,请确保有适当的备份。

如果要编辑文件,为什么不使用标准编辑器ed?ed的常见和良好版本将支持以下内容:

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


这将就地编辑文件,因此,如果要还原更改,请确保您有适当的备份。

您有尝试过的脚本吗?您有尝试过的脚本吗?为什么设置-F选项?为什么设置-F选项?@babyy您发布的错误不是由上面的代码产生的,而是由您秘密使用的笨拙行为产生的。您可以尝试删除内部双引号,或者将其替换为单引号,因为它们对查看是否有帮助并不重要。我真想知道gawk在您的stderr输出中做了什么。@Babyy:我最初的答案是sed-I s/^/`date+'%y-%m-%d'``` |/,但它是由其他人编辑的。我想管理空行,但新命令是错误的。@Babyy您的转录有多个错误。剧本本身很好。但是,ideone.com上的时钟似乎已经关闭了好几天。如何获取上一个日期而不是当前日期。@babyy您发布的错误不是由上面的代码产生的,而是由您暗中使用的笨拙行为造成的。您可以尝试删除内部双引号,或者将其替换为单引号,因为它们对查看是否有帮助并不重要。我真想知道gawk在您的stderr输出中做了什么。@Babyy:我最初的答案是sed-I s/^/`date+'%y-%m-%d'``` |/,但它是由其他人编辑的。我想管理空行,但新命令是错误的。@Babyy您的转录有多个错误。剧本本身很好。ideone.com上的时钟似乎已关闭了几天。如何获取上一个日期而不是当前日期。@请告诉我我的错误是什么,这将是一个建设性的评论!。你真的试过了吗?不,这是对你非建设性评论的报复:冷静,不要作恶。和我自己一样,我也希望使用perl-pi-e@eicto报复非建设性意见?@eicto请告诉我我的错误是什么,这将是一个建设性意见!。你真的试过了吗?不,这是对你非建设性评论的报复:冷静,不要作恶。和我自己一样,我也希望使用perl-pi-e@eicto报复非建设性评论?
printf '%s\n' "$(date '+%%s/^/%Y-%m-%d|/')" wq | ed -s file