batch-file - Windows 批处理等效于 linux 剪切、粘贴和管道到文件
问题描述
我有一个包含 CSV 的文件夹,例如:
一个.csv
pet1;dog
pet2;monkey
B.csv
pet1;cat
pet2;wolf
我现在可以在 bash (Linux) 中重新格式化它们:
for filename in *.csv; do
CSVBody=$(cat $filename | cut -d ";" -f2 | paste -sd ";" -)
echo -e "$CSVBody" >> ./converted/merged.csv
done
要得到
合并的.csv
dog;monkey
cat;wolf
不幸的是,我离开窗户很久了。如何在 bash 中剪切、粘贴和管道到文件?
解决方案
并行读取文件的另一种方法是将一组存储在伪哈希表中
:: Q:\Test\2019\09\03\SO_57771554.cmd
@Echo off & Setlocal EnableDelayedExpansion
for /f "tokens=1* delims=;" %%A in (A.csv) do Set "File1[%%A]=%%B"
for /f "tokens=1* delims=;" %%A in (B.csv) do Echo !File1[%%A]!;%%B
> Q:\Test\2019\09\03\SO_57771554.cmd
dog;cat
monkey;wolf
编辑由于 Aacini 的宝贵提示,我做错了。
:: Q:\Test\2019\09\03\SO_57771554.cmd
@Echo off & Setlocal EnableDelayedExpansion
for %%F in (*.csv) do (
Set "Line="
for /f "tokens=1* delims=;" %%A in (%%F) do Set "Line=!Line!;%%B"
Echo(!Line:~1!
)
> SO_57771554_2.cmd
dog;monkey
cat;wolf
推荐阅读
- javascript - 你能用 HTML5
- css - 对整个 CSS 使用 @media
- java - Android视频查看黑屏
- google-drive-api - Cyberduck - 无法从 GUI 打开与 Google 驱动器的连接
- amazon-web-services - 将带有流的现有 dynamodb 表添加到 CDK
- solidity - 向 Truffles Pet Shop 添加退货功能
- python - 如何使用 python 将多个文件从子目录传输到单个路径文件夹?
- flutter - 颤振:我无法调整flutter_cached_pdfview小部件的大小
- mysql - MySQL在安装过程中没有提示任何窗口输入主机名和密码
- windows - 从 CMD 运行 toast 通知时找不到类型 Windows.Data.Xml.Dom.XmlDocument