对awk字段
I的操作有一个包含完整路径:/home/usr/文件名由下划线分隔\u 123.txt/home/usr/另一个\u示例\u 456.rarI希望打印路径中不带扩展名的文件名,并在其旁边打印最后
解答动态
awk-F[/.]'{print$(NF-1)}'
awk-F'{print$0quot;$NF}' 有没有一种方法可以在没有管道的情况下实现这一点?
我的问题可以归结为,是否可以对awk解析的字段执行操作?
谢谢你的帮助。
是的,你可以在球场上进行任何你喜欢的操作。为了示例:
$cat fileawk-F[/.]'{n=split($(NF-1),a,/./);print$(NF-1)quot;a[n]}的文件名\u由下划线分隔\u 123另一个\u示例\u 456 456 当然,这里不需要cat;您可以让awk直接读取文件-由于默认的输出字段分隔符是空格,将结果作为单独的输出字段而不是字符串conc编写会更习惯国家:
awk-F[/.]'{n=split($(NF-1),a,//);print$(NF-1),a[n]}'文件
sed:
$sed的:.*/\(.*\\(.*\)\..*:\1\2:'文件名由下划线分隔\u 123另一个\u示例\u 456 456 \ 您可以使用sed:
$sed-e的;^.*/\(.*\)\([0-9]*\)\...[^\.]*$;\1_2\2;'文件名由下划线分隔\u 123另一个\u示例\u 456 456 ^.*/删除路径。
\(.*\)捕获名称直到最后一个下划线。
\.[^\.]*删除扩展名。
\1\2\2替换为捕获的组。- End
免责声明:
本页内容仅代表作者本人意见,若因此产生任何纠纷由作者本人负责,概与琴岛网公司无关。本页内容仅供参考,请您根据自身实际情况谨慎操作。尤其涉及您或第三方利益等事项,请咨询专业人士处理。