입력하다:
11 22 33 44,1 2,2
산출
11223344,1 2,2
1
첫 번째 필드 앞에 오는 필드 번호의 모든 공백을 제거하고 싶습니다 comma
.
답변1
를 사용하려면 sed
루프가 필요합니다.
sed -e :1 -e 's/^\([^,]*\) /\1/;t1'
또는 보존 공간을 사용하여 모든 공백을 교체한 다음 거기에서 줄의 원래 부분을 복원할 수 있습니다.
sed 'h;s/,.*//;s/ //g;G;s/\n[^,]*//'
다음 명령을 사용하면 더 쉬울 것입니다 awk
.
awk -F, -v OFS=, '{gsub(" ", "", $1); print}'
또는 perl
:
perl -F, -lpe '$F[0] =~ s/ //g; $_ = join ",", @F'
또는:
perl -pe 's{[^,]*}{$& =~ s/ //gr}e'
또는:
perl -pe 's/\G[^, ]*\K //g'
마지막 것은 설명할 가치가 있을 것입니다: \G
깃발을 동반하는 것입니다 g
.
플래그는 전역 교체를 g
의미하며 이전 발생 이후 다음 발생을 계속 검색하는 g
루프를 의미합니다 .perl
\G
이전 일치 항목 이후의 위치, 즉 마지막으로 교체된 공백 이후와 루프의 첫 번째 패스에서 줄의 시작 부분과 일치합니다. 사용할 때 [^,]
첫 번째 쉼표를 지나는 루프는 허용되지 않으므로 그 앞의 모든 공백을 바꾸십시오.