如何将当前日期或时间添加到文件中每一行的末尾?

发布于 2024-12-08 01:32:28 字数 293 浏览 0 评论 0原文

我有一个名为 data.txt 的文件。

我想将当前日期或时间或两者添加到每行的开头或结尾。

我已经尝试过这个:

awk -v v1=$var ' { printf("%s,%s\n", $0, v1) } ' data.txt > data.txt

我已经尝试过这个:

sed "s/$/,$var/" data.txt

没有任何效果。

有人可以帮我吗?

I have a file called data.txt.

I want to add the current date, or time, or both to the beginning or end of each line.

I have tried this:

awk -v v1=$var ' { printf("%s,%s\n", $0, v1) } ' data.txt > data.txt

I have tried this:

sed "s/$/,$var/" data.txt

Nothing works.

Can someone help me out here?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

熊抱啵儿 2024-12-15 01:32:28

怎么样:

cat filename | sed "s/$/ `date`/"

How about :

cat filename | sed "s/$/ `date`/"
§普罗旺斯的薰衣草 2024-12-15 01:32:28

这样做的问题

awk -v v1=$var ' { printf("%s,%s\n", $0, v1) } ' data.txt > data.txt

首先发生>重定向,并且shell截断了文件。只有这样,shell 才会执行 awk,然后读取一个空文件。

选择以下选项之一:

sed -i "s/\$/ $var/" data.txt

awk -v "date=$var" '{print $0, date}' data.txt > tmpfile && mv tmpfile data.txt

但是,您的 $var 是否包含斜杠(例如“10/04/2011 12:34”)?如果是,则为 sed 的 s/// 命令选择不同的分隔符:sed -i "s@\$@ $var@" data.txt

The problem with this

awk -v v1=$var ' { printf("%s,%s\n", $0, v1) } ' data.txt > data.txt

is that the > redirection happens first, and the shell truncates the file. Only then does the shell exec awk, which then reads an empty file.

Choose one of these:

sed -i "s/\$/ $var/" data.txt

awk -v "date=$var" '{print $0, date}' data.txt > tmpfile && mv tmpfile data.txt

However, does your $var contain slashes (such as "10/04/2011 12:34") ? If yes, then choose a different delimiter for sed's s/// command: sed -i "s@\$@ $var@" data.txt

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文