1

How can we use sed to get the 4 characters between "Install ID:" and first space after XKCD, basically I want to extract "XKCD" string out of it

Install ID:          XKCD (8426200,8179503)

I tried using -

 echo "Install ID:          XKCD (8426200,8179503)" | sed -n 's/^.*ID:\(.*\)*$/\1/p'

but that gives me "XKCD (8426200,8179503)" instead of just XKCD. I am not able to figure out, how to hand the space part.

4

2 回答 2

3

对您的尝试进行了一些小修改:

echo "Install ID:          XKCD (8426200,8179503)" | sed -n 's/^.*ID: *\([^ ]*\) .*$/\1/p'

或者

echo "Install ID:          XKCD (8426200,8179503)" | awk '{print $3}'
于 2012-06-11T23:57:00.743 回答
0
 test="Install ID:          XKCD (8426200,8179503)"
 echo $test | sed -re 's/^.*\:\s+([A-z]{4}).*/\1/'

或者:忽略冒号之前的所有内容,忽略冒号之后的空格,获取空格之后的四个字符,然后忽略之后的所有内容。但是,如果您的字符包含数字或其他内容,那么它当前会失败(您需要将它们添加到方括号中的列表中)。

于 2012-06-11T23:52:39.627 回答