首页 > 解决方案 > awk 正则表达式过滤中间字符串

问题描述

我想用 awk 过滤一些行。文件中的行:

Cached memory
Shared memory
/tmp
/data
/data/video
/var
/home

输出应该是:

/tmp
/data/video
/var
/home

困难的是 exclude non-started-with/和 exclude /data/.*,正则表达式/^((?!\/).)|^((?!\/data$))*/不起作用,我应该如何编写 awk 表达式?谢谢。

标签: regexawk

解决方案


使用 perl 而不是 awk:

perl -lne 'print unless(/\/data$|^[^\/]/)' your_file

推荐阅读