将字符串从第二次出现的字符剪切到字符串末尾

将字符串从第二次出现的字符剪切到字符串末尾

我想修改脚本中文件名的结尾部分,如下所示

    #!/bin/bash
    file = ...
    gawk -f shc2csv.awk $1 > $file.csv

其中$1通常类似于shc_20210901_0002_763803214.htmlfile应该是shc_20210901

所以应该从第二个开始切断字符串_

我该如何file使用$1sed 或 awk 获取?

答案1

您不需要 sed 或 awk 来修改变量中的值$1

#!/bin/bash

file=${1%_*}    # remove the part after the last `_`
file=${file%_*} # repeat the removal to the second `_`

gawk -f shc2csv.awk "$1" > "$file".csv

您应该引用变量扩展。

相关内容