Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 复制文件名的前六个字符,并将其修改为相同.txt文件的顶行_Macos - Fatal编程技术网

Macos 复制文件名的前六个字符,并将其修改为相同.txt文件的顶行

Macos 复制文件名的前六个字符,并将其修改为相同.txt文件的顶行,macos,Macos,我有一个.txt文件的dir/文件夹,我想获取每个.txt文件名的前六个字符,并将其粘贴到每个相同的.txt文件的开头(后面是一个选项卡) 文件名示例: 123456 someone.txt 234567另一个很棒的东西.txt 所以“123456 Something Awesome.txt”将以“123456[TAB]”开头,以此类推 我在Mac上作为批处理(.bat)的一部分执行此操作 (我将把.txt文件导入Excel,这样文件名的前6个字符/数字基本上将成为每个文件/数据行的第一个数

我有一个.txt文件的dir/文件夹,我想获取每个.txt文件名的前六个字符,并将其粘贴到每个相同的.txt文件的开头(后面是一个选项卡)

文件名示例:

  • 123456 someone.txt
  • 234567另一个很棒的东西.txt
所以“123456 Something Awesome.txt”将以“123456[TAB]”开头,以此类推

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

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


谢谢

像这样的事情可能会奏效。将*.txt文件放在目录中,然后创建文件
myscript.sh
。在同一目录中执行
chmod+xmyscript.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

这是一个基本结构,只需插入一个额外的
选项卡
,您就可以开始了。

Mac不使用
.bat
文件,这是Windows的功能。另外,请展示你的尝试。你拿了,你读了吗,还有?。bat在Mac上工作。它通过Mac的Terminal.app运行。我在这个特定进程中使用的东西失败了,所以我认为发布示例代码对我来说毫无价值。Mac OSX和更高版本将运行.bat文件-(您可以以.bat结尾)-我已经运行了几个星期了)。这会产生很多“没有这样的文件或目录”错误,但这可能是因为文件名有空格(?)。结果如下:cat:123456:没有这样的文件或目录cat:Something:没有这样的文件或目录cat:Awesome.txt:没有这样的文件或目录…有空格:)还有其他建议吗?我如何让它忽略文件名中的空格?看起来这就是问题所在:)此外,它还在6个字符后添加一个换行符(当我需要制表符时)。我删除空格的“修复”方法是将文件复制到新目录,用下划线替换空格,然后在这些文件上运行上述过程。然后它成功了:)