;
숫자나 문자열(문자열에는 공백 이 포함되지 않음 =
) 로 설정할 수 있는 변수가 얼마든지 포함된 파일이 있다고 가정해 보겠습니다 . 변수는 세미콜론으로 구분되며(공백은 중요하지 않음) 각 줄에는 서로 다른 변수 세트가 포함됩니다.
A = 1; B = ball
A = 2; B = ball; C = C3
다음과 같은 파일에 쓰는 방식으로 파일을 구문 분석하고 싶습니다.
A=1
B=ball
그리고 다음과 같은 또 다른 파일:
A=2
B=ball
C=C3
Bash에서 이를 달성하는 방법은 무엇입니까?
답변1
awk를 사용할 수 있습니다.
awk -F ';' '{gsub(/[[:blank:]]/,"");for(i=1;i<=NF;i++)print $i>NR}' file
-F ';'
: 필드 구분 기호를 세미콜론으로 설정합니다.gsub(/[[:blank:]]/,"")
: 모든 공백을 삭제합니다.for(i=1;i<=NF;i++)print $i>NR
: 각 줄은 파일과 연결됩니다. 1행은 파일 1로 이동하고, 2행은 파일 2로 이동하는 식으로 진행됩니다. 각 변수 값 쌍은 해당 파일의 한 줄에 인쇄됩니다.
결과는 파일 1
이며 다음과 같습니다 2
.
$ cat 1
A=1
B=ball
$ cat 2
A=2
B=ball
C=C3