unix - 使用 sed 忽略行中的特定模式
问题描述
我正在尝试 grep 以group
关键字开头的单词 & 以-wx
给定行结尾的单词。我也需要忽略下面的话。
- 开始
default:group
和结束于-wx
group::-wx
我的发现
echo "# file: /test/test123 # owner: own # group: acct user::r-- group::r-x mask::rwx other::r-x default:user::r-- default:user:an:--x default:group::r-x default:group:fin:-wx default:mask::rwx default:other::r-x" | grep -o "group:[^ ]*-wx" | sed '/group::-wx/d';'/default:[^ ]*:[^ ]*-wx/d'
实际结果
fin:-wx
预期结果
<null>
解决方案
您已经有一个 grep 来选择您想要的内容,只需添加 grep 语句即可删除您不想要的内容。
像这样:
LINE="# file: /test/test123 # owner: own # group: acct user::r-- group::r-x mask::rwx other::r-x default:user::r-- default:user:an:--x default:group::r-x default:group:fin:-wx default:mask::rwx default:other::r-x"
echo $LINE | grep -o "group:[^ ]*-wx" \
| grep -vo "default:group:[^ ]*-wx" \
| grep -vo "group::-wx"
在我的 linux 上,它什么也不返回,这是您所期望的。我没有其他测试样本,但我认为这还可以。
推荐阅读
- javascript - 如何将 Firebase 数据实时绘制到 ChartJS
- python - 我想摆脱所有像 [(' 这样的特殊字符,我真的陷入了如何
- python - 为什么要减小 text_label 形状?
- python - tf.sparse.reshape(tf.sparse.split()) : TypeError: Input must be a SparseTensor
- reactjs - Firebase Firestore onSnapshot PayloadTooLargeError:Expo / React Native 项目上的请求实体太大
- javascript - NextJS - ky-universal 错误 - 无法在模块外使用 import 语句
- entity-framework - 如果参数可能为空,则从 sql 选择中获取值
- fonts - Pygame 表面调整大小
- java - AsynchronousSocketChannel 如何保持读取?
- image - 枕头:将 TIFF 从灰度 16 位转换为 8 位会产生全白图像