使用sed删除行中的字符

时间:2013-04-21 00:29:57

标签: string bash unix sed

假设我有以下字符串:

variable number of characters -> information information information WORD: info

如何摆脱“信息”之前和最后“信息”字符串后的所有内容以及如何获取“信息”(删除' - >'之前的所有内容和空格,然后删除'WORD之前的所有内容' :'和空格键)。例如

var1="information information information"
var2="info"

此外,我想了解更多关于'sed'的信息,我曾尝试在网上搜索一些客观的文章,但我没有找到任何文章。如果您有一篇好文章的链接,如果您与我分享,我将不胜感激。提前谢谢。

2 个答案:

答案 0 :(得分:3)

Bash有一个内置的正则表达式运算符=~。匹配项存储在BASH_REMATCH r 例如 e x m atch)数组中。

regex='^.* -> (.*) WORD: (.*)$'

if [[ $string =~ $regex ]]; then
    var1=${BASH_REMATCH[1]}
    var2=${BASH_REMATCH[2]}
fi

答案 1 :(得分:0)

在Eric Pement的页面上插入一个衬垫和sed常见问题非常有用。

http://www.pement.org/sed/index.htm