首页 > 解决方案 > 复制文件名的前六个字符并将其修改为相同 .txt 文件的顶行

问题描述

我有一个 .txt 文件的目录/文件夹,我想获取每个 .txt 文件文件名的前六个字符并将其粘贴到每个相同 .txt 文件的开头(后跟一个 TAB)。

文件名示例:

所以“123456 Something Awesome.txt”将以“123456[TAB]”开头,依此类推。

我在 Mac 上作为批处理 (.bat) 的一部分执行此操作。

(我会将 .txt 文件导入 Excel,因此文件名的前 6 个字符/数字基本上将成为每个文件/数据行的第一个数据单元格 - 这也是我需要 TAB 的原因,以便其余的的文件将填充以下单元格。)

谢谢!

标签: macos

解决方案


这样的事情可能会奏效。将您的 *.txt 文件放在一个目录中并创建文件myscript.sh. 在同一目录中执行chmod +x myscript.sh,以便您能够执行您的 shell 脚本。将以下代码放入您的 shell 脚本并./myscript.sh在您的目录中执行它。

#!/bin/bash
for filename in ./*.txt; do
    text="${filename:2:6}"
    echo $text | cat - $filename > temp && mv temp $filename
done

这是一个基本的结构,只需插入一个额外的tab,你就可以开始了。


推荐阅读