이 데이터가 파일에 있습니다.
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
또는 cut
및 sed
:
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()