사용하는 특정 디렉터리에 각 파일을 추출해야 할 때 디렉터리에 일부 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
&
전체 패턴이에요