【问题标题】:Rename file as third word on it (bash)将文件重命名为第三个单词(bash)
【发布时间】:2022-08-02 17:01:41
【问题描述】:

我有几个自动生成的文件(例如,参见下图),我想根据第一行中的第三个单词重命名它们(在本例中为 42.txt)。

第一行:

配体CC@@HOc3ccccc342P10000001

有没有办法做到这一点?

    标签: linux bash rename filenames txt


    【解决方案1】:

    假设您有 file.txt 包含:

    ligand CC@@HOc3ccccc3 42 P10000001
    

    并且您想根据文件中的第三个字段将file.txt 重命名为42.txt。最简单的方法是简单地将mvawk 一起使用命令替换,例如:

    mv file.txt $(awk 'NR==1 {print $3; exit}' file.txt).txt
    

    在哪里命令替换$(...) 只是 awk 表达式 awk 'NR==1 {print $3; exit}',它只输出第三个字段(例如 42)。指定NR==1 确保只考虑第一行,并且在该规则末尾指定exit 确保如果file.txt 是一个100000 行文件,则不再处理浪费时间的行。

    确认

    file.txt 现在更名为 42.txt,例如

    $ cat 42.txt
    ligand CC@@HOc3ccccc3 42 P10000001
    

    【讨论】:

      猜你喜欢
      • 2015-10-31
      • 2017-12-12
      • 2016-09-23
      • 2012-01-02
      • 2021-02-17
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      • 2019-05-02
      相关资源
      最近更新 更多