shell bash,如何拆分字符串以获取标记后的文本

时间:2014-01-13 11:07:31

标签: bash shell

我正在尝试拆分字符串以获取字符串标记后的文本。我被告知使用sed可能是明智的,但我不确定如何实现它。

我在文件中有以下文字:

/#text
/#difftext
....

我基本上想要遍历并获取/#

之后的文本

这是我到目前为止所做的:

while read line
    do
    if [[ ${line} == */#" ]]
    #split line to get text

done < ${FILE}

3 个答案:

答案 0 :(得分:1)

grep -Po '/#\K.*'

sed 's@/#@@'

答案 1 :(得分:1)

如果您已在变量中包含该行,则可以使用字符串替换:

$ line='/#text /#difftext ....'
$ echo ${line##*/#}
difftext ....

答案 2 :(得分:0)

while read line
do
  if [[ ${line} =~ ^.*/# ]]; then
    echo ${line##*#}
  fi
done <file