このデータはファイルにあります。
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()