必须编写脚本来从文件中提取并返回字符串值。仅当在文件中找到给定模式的匹配项后,才必须执行此操作。
例子:
"id":"re454sv:57ghg34sfw:87wre56:rty4598gh"
该文本是一个大日志文件的子部分,并且可能会发生许多这种情况"id":"some value"
。我每次都需要从该目录中的许多文件中返回“某个值”部分。
我认为sed
Unix 中的实用程序在这里有帮助,但我无法弄清楚它的确切用法。如果有人能提供帮助,我会很高兴。
答案1
您不清楚是否只需要第一个:
分隔值或标记后的行的整个其余部分"id"
。
前者是:
sed -nre 's/^"id":"([^:]*):.*/\1/p' <file>
后者是:
sed -nre 's/^"id":(.*)/\1/p' <file>
请注意,开关很重要。-n
确保不打印任何内容(尾部p
打印那些匹配的行)。-r
启用扩展正则表达式解析,因此不必转义括号之类的内容。
答案2
sed 's/"id":"\([^"]*\)"/\1/g'
如果通过 stdin 输入该值,则提取该值