【问题标题】:Rename the file name using shell prefer sed cut command and awk使用 shell prefer sed cut 命令和 awk 重命名文件名
【发布时间】:2019-10-05 21:47:40
【问题描述】:

我想像下面提到的那样重命名文件名

如果文件名是 abc_test_tt_3447.txt 我想要 abc_tt_3447.txt

如果文件名是 abc_test_ff_tt_3447.txt 我想要 abc_tt_3447.txt

如果我想用空替换 test 和 test_ff

我用 sed 命令试过了

【问题讨论】:

  • 您是否有多个文件以您的示例命名,并且您想全部重命名?
  • 是的,多个文件和测试是一个例子,我可以说我不想在文件名中出现第二个和第三个单词,但是这两个操作在不同文件的同一步骤中执行

标签: python shell awk sed cut


【解决方案1】:

使用 bash:

shopt -s extglob
for file in *_test*; do
    echo mv -- "$file" "${file//_test?(_ff)/}""
done

或:

for file in *_test*; do
    [[ $file =~ (.*)_test(_ff)?(.*) ]] &&
    echo mv -- "$file" "${BASH_REMATCH[1]}${BASH_REMATCH[3]}"
done

完成测试后删除echo

【讨论】:

    猜你喜欢
    • 2014-02-17
    • 2013-10-03
    • 2019-09-02
    • 2021-06-04
    • 2019-01-09
    • 2011-08-06
    • 2016-05-29
    • 2013-02-05
    • 1970-01-01
    相关资源
    最近更新 更多