下の3行から始めて、jarファイル名をgrepして切り取りました。行から瓶の名前をどのように把握し、そこから切り取ることができますか?
Downloading:https://repo.maven.apache.org/maven2/org/springframework/spring-aop/5.0.6.RELEASE/spring-aop-5.0.6.RELEASE.jar
Downloaded:https://repo.maven.apache.org/maven2/org/springframework/spring-aspects/5.0.6.RELEASE/spring-aspects-5.0.6.RELEASE.jar (46 KB at 12.6 KB/sec)
Downloading:https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-config/5.0.5.RELEASE/spring-security-config-5.0.5.RELEASE.jar
640/1052 KB 2580/6582 KB
答え1
grep
()コマンドラインオプションをサポートし、次に終わる非文字シーケンスを-o
出力したい場合--only-matching
/
.jar
grep -o '[^/]*\.jar\b' file
答え2
awk -F'.jar' '/.jar/{print $1".jar"}' file |awk '{print $NF}' FS=/
最初のawkは、「.jar」を含む行のみを表示し、jarファイル名まで表示します。
2番目のawkは、行の先頭から最後に「/」が表示されるまですべてを削除し、jarファイルの名前だけを残します。
答え3
perl -ne 'print $1 if /([^\/]*\.jar\s)/' file
結果を1行に表示したい場合(パターンに一致する名前の配列を作成するときに便利です)
または別の行に印刷してください。
perl -ne 'print "$1\n" if /([^\/]*\.jar)/' file
答え4
使用標準sed
:
$ sed -nE '/\.jar/{ s%.*/(.+\.jar).*%\1%p; }' file
spring-aop-5.0.6.RELEASE.jar
spring-aspects-5.0.6.RELEASE.jar
spring-security-config-5.0.5.RELEASE.jar
文字列を含む行を見つけて.jar
置換を実行します。置換は、行全体をその行のファイル名部分にのみ置き換えます。ファイル名が.jar
その行の文字列を含む唯一のものであるとします。