awk를 사용하여 디렉토리의 파일 압축 해제

awk를 사용하여 디렉토리의 파일 압축 해제

사용하는 특정 디렉터리에 각 파일을 추출해야 할 때 디렉터리에 일부 zip 파일이 있습니다.

ls | awk '{ print "unzip " $1 " -d " $1} '
unzip p21286665_121020_Linux-x86-64.zip -d p21286665_121020_Linux-x86-64.zip
unzip p21841318_121020_Linux-x86-64.zip -d p21841318_121020_Linux-x86-64.zip
unzip p22098146_121020_Linux-x86-64.zip -d p22098146_121020_Linux-x86-64.zip

하지만 나에겐 이런 것이 필요하다.

unzip p21286665_121020_Linux-x86-64.zip -d p21286665
unzip p21841318_121020_Linux-x86-64.zip -d p21841318
unzip p22098146_121020_Linux-x86-64.zip -d p22098146

답변1

-F 매개변수를 사용하여 밑줄 줄을 분할하여 다음과 같이 끝낼 수도 있습니다.

ls | awk -F_ '{print "unzip " $0 " -d " $1; }

답변2

노력하다

ls | awk '{ print "unzip " $1 " -d " substr($1,1,index($1,"_")-1) } '

아니면 sed에서

ls | sed -e "s/\([^_]*\)_.*$/unzip & -d \1/"

어디

  • [^_]*_ 문자열이 아닙니다
  • \(.. \)순수하게 캡처\1
  • &전체 패턴이에요

관련 정보