在shell中执行一些命令后,我得到如下输出,
file1.txt@@/main/v1/v2/v3/v4/v5/v6/v7/v8/v9/v10/5
file2.txt@@/main/v4/v5/v6/v7/v8/v9/v10/4
file3.txt@@/main/v9/v10/8
请告诉我可以应用哪些命令来获得如下的最终输出,只是文件名和每行中的最后5个字符
file1.txt v10/5
file2.txt v10/4
file3.txt v10/8
答案 0 :(得分:4)
使用awk
awk -F"[@/]" '{print $1,$(NF-1)"/"$NF}' file
file1.txt v10/5
file2.txt v10/4
file3.txt v10/8
使用@
和/
分隔文字,打印第一个字段,第二个字段和最后一个字段。
如果需要标签:
awk -F"[@/]" '{print $1"\t"$(NF-1)"/"$NF}' file
file1.txt v10/5
file2.txt v10/4
file3.txt v10/8
答案 1 :(得分:0)
在管道的末尾添加:
sed 's!@@.*/\([^/]*/[^/]*$\)!\t\1!'
答案 2 :(得分:0)
使用awk:
awk -F'@@' '{print $1, substr($2, length($2)-4)}' filename