Bash에서 변수 행을 파일로 구문 분석합니다.

Bash에서 변수 행을 파일로 구문 분석합니다.

;숫자나 문자열(문자열에는 공백 이 포함되지 않음 =) 로 설정할 수 있는 변수가 얼마든지 포함된 파일이 있다고 가정해 보겠습니다 . 변수는 세미콜론으로 구분되며(공백은 중요하지 않음) 각 줄에는 서로 다른 변수 세트가 포함됩니다.

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

관련 정보