아래 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 파일 이름까지 표시합니다.
두 번째 awk는 행의 시작 부분부터 "/"가 마지막으로 나타날 때까지 모든 것을 제거하고 jar 파일의 이름만 남깁니다.
답변3
perl -ne 'print $1 if /([^\/]*\.jar\s)/' file
결과를 한 줄에 표시하려는 경우(패턴과 일치하는 이름 배열을 만들 때 유용함)
아니면 다른 줄에 인쇄하세요.
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
해당 줄의 문자열을 포함하는 유일한 것이라고 가정합니다 .