我想从文件中获取子字符串,但只能从没有感叹号的行(它是Fortran中的注释符号)中获取.我更喜欢使用grep(但不是绑定).例如:
infile.txt:
calib_ss/baseline.txt
!calib_ss/base_sharpe.txt
Run Code Online (Sandbox Code Playgroud)
期望的结果:
baseline
Run Code Online (Sandbox Code Playgroud)
我到目前为止:
grep -Po "(?<=/)[^/.]*(?=\.)" infile.txt
Run Code Online (Sandbox Code Playgroud)
返回
baseline
base_sharpe
Run Code Online (Sandbox Code Playgroud)
排除以!开头的行!我想把表达与...结合起来
^[^\!]
Run Code Online (Sandbox Code Playgroud)
但我没有管理.提前致谢!
这个 grep 应该可以工作:
grep -Po '^[^!].*?(?<=/)\K[^/.]*(?=\.)' infile.txt
Run Code Online (Sandbox Code Playgroud)
输出:
baseline
Run Code Online (Sandbox Code Playgroud)
解释:
^[^!]将确保匹配除!行开头之外的任何内容\K将确保重置开始| 归档时间: |
|
| 查看次数: |
476 次 |
| 最近记录: |