2013-10-17 1 views
0

I 라인문자열을 인용 텍스트의 모든 조각을 얻을 쉘 스크립트에서 다른 문자열로 넣어 싶어

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

을하고 난 모두의를 추출하고 문자열 x 및 추출물에 넣어하려면 두 b 모두를 다른 문자열 y에 넣습니다. 이것은 예제 일 뿐이지 만 따옴표 안의 문자열은 임의의 길이를 가질 수 있습니다. 나는 또한 그러한 배열을 만들 생각을 가지고 있었다.

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

내가 이것을하기 위해 필요한 코드는 무엇인가?

답변

0

대신 a 대신에 문자열 x를, b 대신에 문자열 y를 대체해야한다면?

친절 "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 

감사를 엽니 다.

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" 
관련 문제