代码之家  ›  专栏  ›  技术社区  ›  RunLoop

编辑大量文本文件

  •  1
  • RunLoop  · 技术社区  · 14 年前

    我有大约350个文本文件,其中包括我的硬盘上5个文件夹的全部内容。对于这些文件中的每一个,我想删除每个文件开头和结尾指定数量的字符。我不知道AppleScript,但怀疑它可能适合我想要实现的目标。任何帮助自动化这将是非常感谢手动编辑这些文件是一项艰巨的任务。非常感谢你。

    STARTTYPE:RGIN
    MODEXP:NO
    

    需要从每个文件的末尾删除以下内容:

    REFACTORSCALE:2.0
    ENDTYPE:FACTORED
    
    1 回复  |  直到 14 年前
        1
  •  2
  •   J. Polfer    14 年前

    OSX有unix命令吗 sed

    您可能会说(假设要删除的文本在每个文件中都是相同的):

    sed -i 's/STARTTYPE:RGIN\nMODEXP:NO\n//' file_pattern
    sed -i 's/REFACTORSCALE:2.0\nENDTYPE:FACTORED\n//' file_pattern
    

    例如,假设一堆.txt文件需要在主目录下的这5个目录中进行这些编辑。你可以做:

    sed -i 's/STARTTYPE:RGIN\nMODEXP:NO\n//' /home/Run_Loop/directory_1/*.txt
    sed -i 's/REFACTORSCALE:2.0\nENDTYPE:FACTORED\n//' /home/Run_Loop/directory_1/*.txt
    sed -i 's/STARTTYPE:RGIN\nMODEXP:NO\n//' /home/Run_Loop/directory_2/*.txt
    sed -i 's/REFACTORSCALE:2.0\nENDTYPE:FACTORED\n//' /home/Run_Loop/directory_2/*.txt
    sed -i 's/STARTTYPE:RGIN\nMODEXP:NO\n//' /home/Run_Loop/directory_3/*.txt
    sed -i 's/REFACTORSCALE:2.0\nENDTYPE:FACTORED\n//' /home/Run_Loop/directory_3/*.txt
    sed -i 's/STARTTYPE:RGIN\nMODEXP:NO\n//' /home/Run_Loop/directory_4/*.txt
    sed -i 's/REFACTORSCALE:2.0\nENDTYPE:FACTORED\n//' /home/Run_Loop/directory_4/*.txt
    sed -i 's/STARTTYPE:RGIN\nMODEXP:NO\n//' /home/Run_Loop/directory_5/*.txt
    sed -i 's/REFACTORSCALE:2.0\nENDTYPE:FACTORED\n//' /home/Run_Loop/directory_5/*.txt