0

我有线

var=2 (0 (1 "a" "b")) (1 (2 "a" "b")) (2)

我想提取两个 a 并将它们放入字符串 x 并提取两个 b 并将它们放入另一个字符串 y 中。这只是一个示例,但引号内的字符串可以是任意长度。我也有一个想法来制作一个数组,这样

array[0] = a
array [1] = b
array[2] = a
array[3] = b

我需要这样做的代码是什么?

4

2 回答 2

0

如果您需要替换字符串 x 而不是 a 和字符串 y 而不是 b?

请通过“vi”编辑器打开包含上述行的文件,

 :%s/a/x/g   <-- to replace string x instead of string a

 :%s/b/y/g   <-- to replace string y instead of string b

谢谢。

于 2013-10-17T09:18:10.833 回答
0
# This puts the quoted strings into $1 to $4:
set `echo 'var=2 (0 (1 "a" "b")) (1 (2 "a" "b")) (2)'|
sed 's/.*"\(.*\)".*"\(.*\)".*"\(.*\)".*"\(.*\).*".*/\1 \2 \3 \4/'`   
# This puts them into $x and $y afterwards:
x="$1 $3"
y="$2 $4"
于 2014-09-26T07:30:03.157 回答