awk 또는 sed를 사용하여 csv 셀 값을 거꾸로 읽어 7번째 열의 문자열을 인쇄하는 방법

awk 또는 sed를 사용하여 csv 셀 값을 거꾸로 읽어 7번째 열의 문자열을 인쇄하는 방법

다음과 같은 값을 가진 7번째 열이 있습니다.

OS:J:\output\Windows\System32\winevt\Logs\Security.evtx
OS:J:\output\Windows\System32\winevt\Logs\System.evtx

값을 거꾸로 읽어서 정보를 추출하고 새 열에 넣고 싶습니다.

새 열에서 추출할 값은 "위치"가 다음과 같아야 한다고 가정해 보겠습니다.

Location
Security.evtx
System.evtx

답변1

$ awk -F'\' '{print $7}' inputfile

답변2

확인된 대로 마지막 열은 $7입니다. 값을 추출하기 위해 아래 명령을 사용했습니다.

명령

sed -r 's/.*\\//g' filename

산출

Security.evtx
System.evtx

답변3

질문의 데이터가 있는 7번째 필드 앞에 표시하지 않는 필드가 6개 이상 있다고 가정하면 다음과 같은 도구를 사용하여 CSV 파일을 읽을 수 있습니다.밀러( ) 새 값에 대한 mlr새 필드를 만듭니다 .location

추가로 CSV 파일에 헤더가 있고(새 필드를 생성하려고 하므로 location) 7번째 필드의 헤더가 이라고 가정하면 filepath다음을 수행할 수 있습니다.

mlr --csv put '$location = sub($filepath,".*\\","")' file

sub()함수는 필드의 마지막 백슬래시 앞에 있는 모든 텍스트를 제거합니다 filepath. 그런 다음 해당 작업의 결과가 새 location필드에 할당됩니다.

테스트:

$ cat file
A,B,C,D,E,F,filepath
1,2,3,4,5,6,OS:J:\output\Windows\System32\winevt\Logs\Security.evtx
1,2,3,4,5,6,OS:J:\output\Windows\System32\winevt\Logs\System.evtx
$ mlr --csv put '$location = sub($filepath,".*\\","")' file
A,B,C,D,E,F,filepath,location
1,2,3,4,5,6,OS:J:\output\Windows\System32\winevt\Logs\Security.evtx,Security.evtx
1,2,3,4,5,6,OS:J:\output\Windows\System32\winevt\Logs\System.evtx,System.evtx
$ mlr --c2p --barred put '$location = sub($filepath,".*\\","")' file
+---+---+---+---+---+---+---------------------------------------------------------+---------------+
| A | B | C | D | E | F | filepath                                                | location      |
+---+---+---+---+---+---+---------------------------------------------------------+---------------+
| 1 | 2 | 3 | 4 | 5 | 6 | OS:J:\output\Windows\System32\winevt\Logs\Security.evtx | Security.evtx |
| 1 | 2 | 3 | 4 | 5 | 6 | OS:J:\output\Windows\System32\winevt\Logs\System.evtx   | System.evtx   |
+---+---+---+---+---+---+---------------------------------------------------------+---------------+

현재 위치에서 변경하고 싶다면 명령줄에서 -I이전에 옵션을 추가하세요.--csv

답변4

awk -F ' / ' '{print $7} yourfilename

관련 정보