对awk字段

2021-02-03 12:43

I的操作有一个包含完整路径:/home/usr/文件名由下划线分隔\u 123.txt/home/usr/另一个\u示例\u 456.rarI希望打印路径中不带扩展名的文件名,并在其旁边打印最后

解答动态

  • awk-F[/.]'{print$(NF-1)}'

    • awk-F'{print$0quot;$NF}' 有没有一种方法可以在没有管道的情况下实现这一点?
      我的问题可以归结为,是否可以对awk解析的字段执行操作?
      谢谢你的帮助。

      • 是的,你可以在球场上进行任何你喜欢的操作。为了示例:
        $cat file

        • awk-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

              免责声明:

              本页内容仅代表作者本人意见,若因此产生任何纠纷由作者本人负责,概与琴岛网公司无关。本页内容仅供参考,请您根据自身实际情况谨慎操作。尤其涉及您或第三方利益等事项,请咨询专业人士处理。