동일한 수의 지정된 문자가 포함된 경우 한 줄을 다음 줄과 연결합니다.

동일한 수의 지정된 문자가 포함된 경우 한 줄을 다음 줄과 연결합니다.

concat지정된 수의 지정된 문자가 포함된 줄이 필요합니다 . 잘 모르겠습니다. pythonor 에서는 쉽지만 루프나 를 사용하지 않고 /// 를 사용 하여 이 작업을 수행하고 ruby싶습니다 . 한 줄에 몇 개의 문자가 포함되어 있는지 , 다음 줄에 같은 수의 문자가 포함되어 있는지 계산해야 합니다.perlsedawkbashuniq -cplusconcat

a+a
a+a
a+a+a
a+a+a
a+a+a+a
a+a+a+a

출력은 다음과 같아야 합니다.

a+a + a+a
a+a+a + a+a+a
a+a+a+a + a+a+a+a

답변1

awk -F "+" 'NR%2{nf=NF;l=$0;next}{sep=(nf==NF?" + ":RS);printf "%s%s%s\n",l,sep,$0}' file

라인별 분석을 위해 확장해 보겠습니다.

awk -F "+" '
  NR%2{nf=NF;l=$0;next}
  {
    sep=(nf==NF?" + ":RS)
    printf "%s%s%s\n",l,sep,$0
  }
' file
  • 필드 구분 기호를 로 설정합니다 +.
  • 행 번호가 홀수( NR%2)이면 필드 개수를 입력 nf하고 전체 레코드를 입력합니다 l.
  • 기타,
    • 이 행의 필드 수가 이전 행의 필드 수와 같은지 설정합니다 sep=" + ". 그렇지 않으면 설정합니다 sep=RS( RS레코드 구분 기호는 개행입니다).
    • l, sep$0개행 문자를 인쇄합니다 .

관련 정보