繁体   English   中英

字符字段分隔符AWK的最后一次出现

[英]Last Occurrence of Character Field Separator AWK

我正在使用find命令查找某种格式的所有文件,该命令一直很黄金。 我将输出汇总到一个awk命令,我想使用最后一个下划线作为字段分隔符。 问题在于,根据文件所在的路径,在事实之前可能会有一个或两个下划线。

find . -regex ".*prob[0-9]*_.*" | awk 'BEGIN { FS = "_.*$" } { print $1 " " $2 }'

我得到了我的字段分隔符中的正则表达式的错误,它认为在下划线和后面的内容之间分开,是否仅指定单个字符本身。 此外,如何在最后一次出现的字符上专门使用字段分隔符。

这有点是我前面提到的问题的扩展: 在管道回声时抑制输出到StdOut

我得到的文件通常是这样的,皱纹是目录也可以有一个下划线:/ / directory / probXXXXX_XX

其中X是任何整数。

我一直在考虑的解决方法是在每个下划线上分离,然后打印每一列......我宁愿让它在上面的方法中工作。

一个不明显的awk技巧是$是一个运算符; 你可以将它与变量甚至表达式一起使用,特别是涉及预定义变量NF表达式: $NF获取最后一个字段, $(NF - 1)是第二个字段。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM