awk에서 특정 문자 잘라내기 및 인쇄

awk에서 특정 문자 잘라내기 및 인쇄

이 데이터가 파일에 있습니다.

one,1,/home/steven/Transformation/users.txt
two,2,/home/steven/Transformation/users.txt

나는 다음과 같은 출력을 원합니다 :

one,1,users.txt
two,2,users.txt

이 문제를 해결하기 위해 awk를 사용하는 방법

답변1

awk -F '[,/]' '{print $1","$2","$NF}'

또는 사용OFS

awk -F '[,/]' -v OFS=',' '{print $1, $2, $NF}'

답변2

다음을 사용할 수도 있습니다 sed.

sed 's;/.*/;;' file

또는 cutsed:

cut -d / -f1,5 file | sed 's;/;;'

cut그리고tr

tr '/' ',' < file | cut -d , -f1,2,7

산출:

one,1,users.txt
two,2,users.txt

~을 위한이 입력:

/one,/1,/home/steven/Transformation/users.txt 
/two,/2,/home/steven/Transformation/users.txt

주문하다:

sed -E 's;(.*,)/.*/;\1;' file

산출:

/one,/1,users.txt 
/two,/2,users.txt

답변3

방법 1

awk -F "," 'OFS=","{print $1,$2,substr($NF,29)}'  filename

방법 2:

sed "s/\/.*\///g" filename

방법 3:

#!/usr/bin/python
import re
k=re.compile(r'/.*/')
p=open('p.txt','r')
for i in p:
    print re.sub(k,"",i).strip()

관련 정보