我有一个目录中有多个TSV文件,我希望在每一行后面添加文件名作为额外的一列。
例如我的数据如下所示:
修改前
文件名: snapper_User_list.txt
Username group
user1 admin
user2 users
文件名:marlin_User_list.txt
Username group
root admin
sql admin
我的理想状态是有一个文本文件,格式如下。
输出
文件名: output.txt
user1 admin snapper
user 2 users snapper
root admin marlin
sql admin marlin
目前我需要在MS Windows中完成这项工作。
我已经有了下面的脚本,虽然它仍然会在输出中显示完整的文件名。
Rem Rename the files by just using the name before the underscore.
for /f "tokens=1* delims=_" %%i in ( 'dir *.txt /b' ) do (
rename %%i_%%j %%i.txt
)
Rem Combine the files.
FOR %%I IN (*.txt) DO (
FOR /f "tokens=*" %%a IN (%%I) DO (
echo %%a%TAB%%%I>>combined.txt
)
)
这是相当丑陋的代码。
谢谢。 (更新 - 更新我的代码)