구조화되지 않은 파일에서 텍스트를 grep하고 잘라내시겠습니까?

구조화되지 않은 파일에서 텍스트를 grep하고 잘라내시겠습니까?

아래 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해당 줄의 문자열을 포함하는 유일한 것이라고 가정합니다 .

관련 정보