와일드카드를 사용하여 여러 디렉터리 이름 중 일부 제거

와일드카드를 사용하여 여러 디렉터리 이름 중 일부 제거

유닉스를 사용하여 일련의 디렉토리 이름 중 마지막 부분을 제거하려고 합니다. 다음은 명명 구조의 예입니다.

s23987_11.09.16_hf_0001
s29485_03.04.07_hs_0005
s39854_01.01.01_an_0011

디렉터리 이름이 다음과 같도록 첫 번째 _ 이후의 모든 항목을 제거하려고 합니다.

s23987
s29485
s39854

답변1

POSIX 쉘 사용:

for d in *_*; do mv -- "$d" "${d%%_*}"; done

이것%%통사론"가능한 한 많이 일치: 밑줄( _) 다음에 *변수 값 끝에 있는 항목( )"이 오는 것을 의미합니다.

관련 정보