grep for word 直到 char
grep for word up until char
我正在尝试 grep 两个字符串和下一个单词,直到文件中的一个字符。
当前内容看起来像这样:
Package: wdiff[=10=]aVersion: 1.2.2-1build1[=10=]aArchitecture: amd64[=10=]aMaintainer:...
...
Package: python[=10=]aVersion: 2.7.2-1build1[=10=]aArchitecture: amd64[=10=]aMaintainer:..
...
等等。
我想 grep 文件中的单词 "Package:" 和 "Versions" 直到 "[=12=]a"
。
这样输出将是:
Package: wdiff Version: 1.2.2-1build1
Package: python Version: 2.7.2-1build1
等等,最好使用grep。
澄清一下 - 这是一个很长的文件,有很多单词由“\0a”分隔,我只想要 2 个单词和它们之后的所有内容,直到“\0a”。
感谢您的帮助!
to grep the file for the words "Package:" and "Versions" together up
until "\a0"
grep 允许您查找匹配项,但它不会替换 "unneeded" 个字符。
使用 grep + sed:[=13 的组合=]
cat testfile | grep -Po 'Package: .+?Version: .+?(?=\0a)' | sed 's/\(.*\)\0a.*\(Version.*\)/ /'
示例输出:
Package: wdiff Version: 1.2.2-1build1
Package: python Version: 2.7.2-1build1
一个选项是:
awk -F\ '{ pos=match(,"build");print " "substr(,3,pos-3) }'
我们使用 awk 和分隔符“\”拆分文本 我们想从第 3 个字符进一步剥离第二个元素到单词 "build" 所以我们使用 awk 中的 match 函数来查找 where is in字符串,然后进一步取第二个字符串,从第 3 个字符到出现单词 "build" 的位置(减去 3 以考虑字符串开头的“0a”。
这是获取输出的单个 awk 命令:
awk -F '\\0a' 'NF>1{print , }' file
Package: wdiff Version: 1.2.2-1build1
Package: python Version: 2.7.2-1build1
-F '\\0a'
将 [=12=]a
设置为输入字段分隔符。
我正在尝试 grep 两个字符串和下一个单词,直到文件中的一个字符。 当前内容看起来像这样:
Package: wdiff[=10=]aVersion: 1.2.2-1build1[=10=]aArchitecture: amd64[=10=]aMaintainer:...
...
Package: python[=10=]aVersion: 2.7.2-1build1[=10=]aArchitecture: amd64[=10=]aMaintainer:..
...
等等。
我想 grep 文件中的单词 "Package:" 和 "Versions" 直到 "[=12=]a"
。
这样输出将是:
Package: wdiff Version: 1.2.2-1build1
Package: python Version: 2.7.2-1build1
等等,最好使用grep。
澄清一下 - 这是一个很长的文件,有很多单词由“\0a”分隔,我只想要 2 个单词和它们之后的所有内容,直到“\0a”。
感谢您的帮助!
to grep the file for the words "Package:" and "Versions" together up until "\a0"
grep 允许您查找匹配项,但它不会替换 "unneeded" 个字符。
使用 grep + sed:[=13 的组合=]
cat testfile | grep -Po 'Package: .+?Version: .+?(?=\0a)' | sed 's/\(.*\)\0a.*\(Version.*\)/ /'
示例输出:
Package: wdiff Version: 1.2.2-1build1
Package: python Version: 2.7.2-1build1
一个选项是:
awk -F\ '{ pos=match(,"build");print " "substr(,3,pos-3) }'
我们使用 awk 和分隔符“\”拆分文本 我们想从第 3 个字符进一步剥离第二个元素到单词 "build" 所以我们使用 awk 中的 match 函数来查找 where is in字符串,然后进一步取第二个字符串,从第 3 个字符到出现单词 "build" 的位置(减去 3 以考虑字符串开头的“0a”。
这是获取输出的单个 awk 命令:
awk -F '\\0a' 'NF>1{print , }' file
Package: wdiff Version: 1.2.2-1build1
Package: python Version: 2.7.2-1build1
-F '\\0a'
将 [=12=]a
设置为输入字段分隔符。