如何将文件名附加到该文件中每一行的末尾?
我需要对数百个文件执行以下操作: 将文件名(可能包含空格)附加到文件中每行的末尾。
在我看来应该有某种方法可以做到这一点:
sed -e 's/$/FILENAME/' *
其中 FILENAME
代表当前文件的名称。 是否有代表当前文件名的 sed 变量? 或者有人有使用 bash、awk 等的不同解决方案吗?
I need to do the following for hundreds of files:
Append the name of the file (which may contain spaces) to the end of each line in the file.
It seems to me there should be some way to do this:
sed -e 's/$/FILENAME/' *
where FILENAME
represents the name of the current file. Is there a sed variable representing the current filename? Or does anyone have a different solution using bash, awk, etc.?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
我确信还有其他方法可以做到这一点,我会使用 perl:
I'm sure there are other ways to do it, I'd use perl:
某些版本的 sed 支持“--in-place”参数,因此您可以将 Tyler 的解决方案压缩为
Some versions of sed support the "--in-place" argument so you can condense Tyler's solution to
您可以使用 bash 脚本来完成此操作
单行版本:
编辑:如果您想用新的、附加名称的行替换文件的内容,请执行以下操作:
You could do it with a bash script
One-liner version:
Edit: If you want to replace the contents of the file with the new, name-appended lines, do this:
在 BASH 中,我会做一些事情来达到以下效果:
In BASH, I'd do something to the effect of:
或多或少是泰勒建议的,只是做了一些修改以允许名称中包含空格。 不过我还是希望能有一个单线...
More or less how Tyler suggested, just with some modifications to allow for spaces in the name. I was hoping for a one-liner though...
这可能对你有用:
This might work for you: