다음과 같은 줄이 포함된 파일이 있습니다.
-rw-rw-rw 1 root root 6379 May 24 2016 test1.CSV
-rw-rw-rw 1 root root 23249 May 25 2016 test2.CSV
-rw-rw-rw 1 root root 2995 May 26 2016 test3.CSV
CSV 파일 이름만 유지하면 됩니다. 정규식을 사용해야 하는데 어느 것이 맞는지 모르겠습니다.
예상되는 결과는 "test1.CSV \n test2.CSV \n test3.CSV"입니다.
답변1
당신은 그것을 사용할 수 있습니다grep
grep -io '[^ ]*\.csv' filename
-i, --ignore-case 대소문자 차이를 무시하여 대문자와 소문자만 다른 문자만 일치시킵니다.
-o, --only-matching 일치하는 줄 중 일치하는(비어 있지 않은) 부분만 인쇄합니다. 각 부분은 별도의 출력 줄에 표시됩니다.
[^ ]*\.csv
.csv의 후행 공백을 제외한 모든 문자와 일치합니다.
파일 이름에 공백이 없다고 가정합니다.
아니면 당신은 사용할 수 있습니다awk
awk '{print $(NF)}' filename | grep -i '\.csv'
변수는 $(NF)
각 행의 마지막 필드입니다.
답변2
이 시도:[^ ]* *$
또는 관련이 있는 경우 간단히 말해서gawk '{print $NF}'
답변3
이 시도,
awk '$NF~/CSV$/ {print $NF}' file
- CSV로 끝나는 행을 추출하고 마지막 필드를 인쇄합니다.
답변4
"awk"를 사용할 수 있습니다:
awk '{print $9}' files
파일 이름이 해당 줄의 9번째 필드인 경우에는 작동합니다.