2 番目の文字の発生から文字列の終わりまで文字列を切り捨てます。

2 番目の文字の発生から文字列の終わりまで文字列を切り捨てます。

以下のようにスクリプトでファイル名の末尾を変更したいと思います。

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

これは$1一般的に似ている必要がshc_20210901_0002_763803214.htmlありfileますshc_20210901

したがって、文字列は2番目の文字列から切り離す必要があります_

sedまたはawkをfile使用してどのように取得できますか?$1

ベストアンサー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

変数拡張を引用する必要があります。

おすすめ記事