将文件名插入 csv 文件的最后一列。
我想将 CSV 文件的文件名插入到 CSV 文件的最后一列中。
我找到了一个成功的 Windows 批处理文件,但我正在寻找 Linux bash 脚本。
我已附上 Windows 批处理文件:
@echo off
setLocal EnableDelayedExpansion
for /f "tokens=* delims= " %%c in ('dir/b/a-d *.csv') do (
set FN=%%~Nc
set /a N=0
for /f "tokens=* delims= " %%a in (%%c) do (
set /a N+=1
if !N! equ 1 (
echo %%a, id > !FN!.csv
) else (
echo %%a, !FN! >> !FN!.csv
)
)
)
期待解决这个问题。
亨利
I would like to insert the file name of a CSV file into the last column of the CSV file.
I found a successful windows batch file but I'm looking for a linux bash script.
I've enclosed the windows batch file:
@echo off
setLocal EnableDelayedExpansion
for /f "tokens=* delims= " %%c in ('dir/b/a-d *.csv') do (
set FN=%%~Nc
set /a N=0
for /f "tokens=* delims= " %%a in (%%c) do (
set /a N+=1
if !N! equ 1 (
echo %%a, id > !FN!.csv
) else (
echo %%a, !FN! >> !FN!.csv
)
)
)
Looking forward to solving this one.
Henry
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用 (gnu)sed:
使用 POSIX sed:
With (gnu)sed:
with POSIX sed:
简单的。
保存为“csvadd.py”。然后此命令会将文件名添加到最后一列(当然替换 test.csv):
编辑
更改了代码,它现在应该适用于操作系统支持的所有内容(通配符等)。现在它还会直接将更改写回到文件中。 谨慎使用
Simple.
Save as "csvadd.py". Then this command will add the filename to the last column (replace test.csv ofcourse):
EDIT
Changed the code, it should now work with everything the OS supports (wildcards, etc). It will now also directly write the changes back to the file. USE WITH CAUTION