使用する特定のディレクトリに各ファイルを抽出する必要がある場合、ディレクトリにいくつかの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
&
全体のパターンです。