bash - 仅从文件中读取模式的一部分
问题描述
我在文件中有一个字符串列表。我想找出添加到特定前缀时的哪些字符串在另一个文件中不存在。
所以如果字符串列表是这样的
foo
bar
baz
qux
目标文件是这个
prefix-foo
prefix-barnotreally
prefix-baz
命令的输出应该是
bar
qux
我知道-f
grep 标志,但据我所知,它不允许用户仅将文件中的字符串用作模式的一部分
解决方案
您可以使用进程替换从第二个文件中提取要传递给-f
选项的部分字符串grep
:
grep -vxFf <(cut -f2- -d- file2) file1
-v
- 反向搜索;查找不匹配的行-x
- 匹配整行-F
- 寻找字符串,而不是正则表达式<(cut -f2- -d- file2)
- 从目标文件中提取字符串,留下前缀
推荐阅读
- android - 修改触摸事件值android
- android - 如何在可绘制文件夹的文件夹内调用图像?
- python - 使用 Kivy 导航到某个屏幕时显示 DataTables
- python - np.mean 返回(nan)行值
- flutter - 如何在颤动的地图上隐藏/显示CustomInfoWindow?
- arrays - $config 必须是字符串或数组
- javascript - 如何从 javascript 文件中访问 tailwind 类
- tomcat - 如何在 Tomcat 9 中启动和重新启动应用程序?
- dart - Dart 空安全。检查条件后可以立即将可变变量设置为空吗?
- laravel - Laravel nova 趋势计算所有价值