Yur*_*kov 2 regex bash shell grep sed
所以我试图在特定模式之后找到一个模式
例如,输入文件将是
/wav1/af_ZA_IT_001_B.wav;2.98;3.67;;;dáár wav1
/wav1/af_ZA_IT_001_B.wav;2.98;3.67;;;dáár we1
/wav1/af_ZA_IT_001_B.wav;4.05;7.9;;;dit is franko wav1 van niekerk hier en kobus buys kobus
Run Code Online (Sandbox Code Playgroud)
然后将输出文件将寻找wav1后;;;
使用
grep "wav1" file.txt
Run Code Online (Sandbox Code Playgroud)
我突出显示了所有 wav1。
/wav1/af_ZA_IT_001_B.wav;2.98;3.67;;;dáár wav1
/wav1/af_ZA_IT_001_B.wav;2.98;3.67;;;dáár we1
/wav1/af_ZA_IT_001_B.wav;4.05;7.9;;;dit is franko wav1 van niekerk hier en kobus buys kobus
Run Code Online (Sandbox Code Playgroud)
但是,由于每个文件都以 wav1 开头,因此我无法找到 wav1 之后的位置;;;。
如何在模式(';;;')之后找到模式('wav`')
预期输出将是
/wav1/af_ZA_IT_001_B.wav;2.98;3.67;;;dáár wav1
/wav1/af_ZA_IT_001_B.wav;4.05;7.9;;;dit is franko wav1 van niekerk hier en kobus buys kobus
Run Code Online (Sandbox Code Playgroud)
轻松搭配grep;
grep ';;;.*wav' file.txt
Run Code Online (Sandbox Code Playgroud)
如果你有,grep -P你可以使用花哨的 Perl 正则表达式技巧;以下将仅突出显示实际wav匹配:
grep -P ';;;.*\Kwav' file.txt
Run Code Online (Sandbox Code Playgroud)
如果您只想提取部分后;;;可以使用sed;
sed -n 's/.*;;;//;/wav/p' file.txt
Run Code Online (Sandbox Code Playgroud)
正则表达式通常最好使用单引号,以避免 shell 与正则表达式混淆(双引号较弱,并且不会保护反斜杠、反引号或许多美元符号)。
| 归档时间: |
|
| 查看次数: |
64 次 |
| 最近记录: |