awk - 剥离后如何打印以特定字符串结尾的所有行?
问题描述
我想打印所有在其末尾包含此字符串的行 - /Season $N
。这里 $N 是任何可以从 0 或 01 开始的数字。最后在打印这些行之前,我想/Season $N
从它的末尾剥离并删除重复项(如果有的话)(可以使用 sort -u)
猫文件.txt
SomeDir/path3/File.ext
SomeDir/Path/Season 5
SomeDir/path/Season 6
SomeDir/path/path/Season 10
SomeDir/path2/Season 19
Some Random String
SomeDir/path/path/Season 19
SomeDir/test/Season 56
预期产出
SomeDir/Path
SomeDir/path/path
SomeDir/path2
SomeDir/test
解决方案
这会做你想做的
cat file.txt | awk -F/ -vOFS=/ '/Season/{NF--;print}' | sort -uf
(编辑)但这更好:
awk -F/ -vOFS=/ '$NF ~ /Season [0-9]+/{NF--;print}' < file.txt | sort -fu
推荐阅读
- jquery - 单击 jquery datepicker 下一个事件时打开未定义的页面
- php - 如何在php的循环中获取id
- apache-beam - 在 Apache Beam 转换中对 CSV 列进行分组
- python - 安装 Eric IDE 的正确方法?
- java - 我怎样才能在 Java 和有点过时的 Swift 代码中获得相同数量的字节?
- ibm-cloud - 将应用程序从 Bluemix SSO 服务转换为 AppID 服务时出错
- docker - 使用 Minikube 的 Docker 中的 Hyper-v 和 VirtualBox 冲突
- java - 如何在线程中再次运行线程或初始化该线程
- sorting - 如何使用fortran代码对二维数组中的距离进行排序?
- python - 在python中使用正则表达式拆分字符串