随意更改标题,因为它与我的问题 100% 不匹配
我在一个文件中有这样的东西:
junk
long_ass_string "/I/want/this/$code/$name" long_ass_string
junk
Run Code Online (Sandbox Code Playgroud)
举例说明:
到目前为止,我已经尝试...
grep -w "/I/want/this/*" file
# 输出 long_ass_string
grep -o "/I/want/this/*" file
# 输出 /I/want/this/
想避免使用仅在之前和/或之后获得 x 个额外字符的解决方案
我会用 grep 来处理所有字符串,然后用第二个 grep 对其进行排序,例如:
grep -o '"[^"]*"' file
Run Code Online (Sandbox Code Playgroud)
输出:
"/I/want/this/$code/$name"
Run Code Online (Sandbox Code Playgroud)
此表达式/I/want/this/*
匹配/I/want/this
零个或多个斜杠字符,您可能的意思是:/I/want/this/.*
匹配/I/want/this/
零个或多个字符。
如果我很理解你,你想摆脱每行中的第一个 $code 和 $name 变量。您可以通过管道将您的结果进行剪切。按照你的例子:
grep "/I/want/this/" myfile.txt | cut -d '/' -f 1-4,7-
Run Code Online (Sandbox Code Playgroud)
您定义分隔符(例如-d
符号)并指示要抓取的字段。
在这种情况下,从分隔符 1 到 4 ( ) 以及第七个分隔符之后的所有字段(通过参数完成),这样您就可以删除与定义的正则表达式匹配的所有行中第四个和第七个分隔符之间的字段。/
-f
/I/want/this/
7-
/$code/$name
echo "/I/want/this/NOT/THAT/and/everythingelse" | grep "/I/want/this/" | cut -d '/' -f 1-4,7-
/I/want/this/and/everythingelse
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
21115 次 |
最近记录: |