Linux 从最新/最新数据中排除数据到行尾

Linux 从最新/最新数据中排除数据到行尾,linux,awk,sed,grep,Linux,Awk,Sed,Grep,我将输入文件(myfile)设置为: 我需要排除行末尾latest“/”之后的所有数据,以获得此输出: /data/152.18224487:2,S /data/152.916612:2, /data/152.48152834 /data/155071755 /data/1521 /data/15.462 /data/15.22649962_test4 /data/15.226462_test6 如何从命令行linux执行此操作 这是一个与Try相关的后续问题 sed 's:/[^/]*$::

我将输入文件(myfile)设置为:

我需要排除行末尾latest“/”之后的所有数据,以获得此输出:

/data/152.18224487:2,S
/data/152.916612:2,
/data/152.48152834
/data/155071755
/data/1521
/data/15.462
/data/15.22649962_test4
/data/15.226462_test6
如何从命令行linux执行此操作

这是一个与Try相关的后续问题

sed 's:/[^/]*$::' < inputfile > outputfile
sed的:/[^/]*$:'outputfile
您在其他地方的评论中指出,您也只需要最后一个斜杠后的其余部分,因此我们开始:

sed 's:^.*/::' < inputfile > outputfile
sed的:^.*/:'outputfile

请尝试以下内容

awk 'match($0,/\/.*\//){print substr($0,RSTART,RLENGTH-1)}' Input_file
awk 'match($0,/.*\//){print substr($0,RSTART,RLENGTH-1)}' Input_file
上面将从
/
开始查看,直到最后出现
/
,以防您的输入文件可以启动而不是
/
,然后尝试以下操作

awk 'match($0,/\/.*\//){print substr($0,RSTART,RLENGTH-1)}' Input_file
awk 'match($0,/.*\//){print substr($0,RSTART,RLENGTH-1)}' Input_file

这个和你的, 即数据:

>> Vi 'x' found in file /data/152.916612:2,/proforma invoice.doc
>> Vi 'x' found in file /data/152.48152834/Bank T.T Copy 12 d3d.doc
>> Vi 'x' found in file /data/155071755/Bank T.T Copy.doc
...
wwk:

输出:

/data/152.18224487:2,S
/data/152.916612:2,
/data/152.48152834
...

它起作用了!请你也帮我做一下计数,即从/data/1521/file.doc到file.doc?@gr68,我当然可以帮你,请你把问题说清楚一点,然后我会为你编辑代码,干杯。谢谢你,我找到了解决方案35; basename/data/1521/file.doc
awk -F/ '{print "/"$1$2"/"$3}' file 

/data/152.18224487:2,S
/data/152.916612:2,
/data/152.48152834
/data/155071755
/data/1521
/data/15.462
/data/15.22649962_test4
/data/15.226462_test6