在shell中格式化输出

在shell中格式化输出,shell,awk,sed,Shell,Awk,Sed,在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 在管道末尾添加以下内容:

在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 

在管道末尾添加以下内容:

sed 's!@@.*/\([^/]*/[^/]*$\)!\t\1!'

在管道末尾添加以下内容:

sed 's!@@.*/\([^/]*/[^/]*$\)!\t\1!'
使用
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
使用
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
使用awk:

awk -F'@@' '{print $1, substr($2, length($2)-4)}' filename
使用awk:

awk -F'@@' '{print $1, substr($2, length($2)-4)}' filename

这不适用于“tcsh”shell,只适用于bash shell。我使用的是“tcsh”shell。以下是tcsh外壳上的错误,esekilvxen320[7:44am][/home/shell]>cat opt|sed!@*/([^/]*/[^/]*$)!\t\1!'@:未找到事件。若要在
tcsh
中工作,请更换
%
或其他字符的代码>(control-A有效)。这不适用于“tcsh”shell,仅适用于bash shell。我使用的是“tcsh”shell。以下是tcsh外壳上的错误,esekilvxen320[7:44am][/home/shell]>cat opt|sed!@*/([^/]*/[^/]*$)!\t\1!'@:未找到事件。若要在
tcsh
中工作,请更换
%
或其他字符的code>(control-A有效)。