줄의 첫 번째 공백 제거

줄의 첫 번째 공백 제거

같은 줄의 다른 공백을 제거하지 않고 아래 줄의 첫 번째 공백만 제거하려면 어떻게 해야 합니까?

입력 예:

2015-04-18 10:21:59 10 05430 -9999 -9999 000000000000

예제 출력:

2015-04-1810:21:59 10 05430 -9999 -9999 000000000000

답변1

다음을 위해 사용할 수 있습니다 sed:

sed 's/ //' infile >outfile

이렇게 하면 파일의 모든 줄에 대체가 적용되어 infile첫 번째 공백 문자가 빈 공백으로 대체됩니다(즉, 제거). 출력은 파일에 저장됩니다 outfile. 를 사용하면 sed 's/ //N'(여기서 은 N1에서 9 사이의 정수) 제거할 공백을 선택할 수 있습니다.

행이 쉘 변수에 있으면 다음을 사용할 수 있습니다

var="${var/ /}"

이는 명령 과 동일한 작업을 수행하기 위해 ${parameter/pattern/string}in 매개변수 확장을 사용하지만 . 이 예에서는 결과 문자열이 다시 저장됩니다 .bashsed$var$var

답변2

사용 awk:

> awk '{print $1$2,$3,$4,$5,$6,$7}' yourfile > outputfile

산출:

> cat outputfile

2015-04-1810:21:59 10 05430 -9999 -9999 000000000000

줄의 공백을 제거하고 공백을 그대로 유지할 수 있습니다.

가설:입력 파일에는 다음이 포함되어야 합니다.

  1. 선행 공백 없음
  2. 연속 공백 없음
  3. 라벨 없음
  4. 총 7칸 미만

가정 중 하나라도 위반되면 결과는 다음과 같습니다.정확하지 않을 것이다

답변3

Ex 모드에서 Vim을 사용할 수 있습니다:

ex -sc '%s/ //|x' file
  1. %모든 행 선택

  2. s바꾸다

  3. x저장하고 닫습니다

답변4

이것은 매우 간단한 질문입니다.

sed -i 's/ //' /path/to/file

추가하지 않고 이 명령을 시도해 보세요.에스sed 표현식의 끝에.

각 줄의 첫 번째 공백만 제거됩니다.

관련 정보