두 번째 문자 발생부터 문자열 끝까지 문자열을 자릅니다.

두 번째 문자 발생부터 문자열 끝까지 문자열을 자릅니다.

아래와 같이 스크립트에서 파일 이름의 끝 부분을 수정하고 싶습니다.

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

이는 $1일반적으로 유사 shc_20210901_0002_763803214.html하며 file이어야 합니다 shc_20210901.

따라서 문자열은 두 번째 문자열부터 끊어야 합니다 _.

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

변수 확장을 인용해야 합니다.

관련 정보