선택한 문자 바꾸기

선택한 문자 바꾸기

을 사용하여 [:space:]파일의 각 줄의 첫 번째 문자를 바꾸는 방법은 무엇입니까?\tsed

Input: 
AC 12 45
DC 56 89

Expected output:
AC    12 45
DC    56 89

( sed "s/[:space]/'\t'/g"줄의 다른 공백과 유사하지만 영향을 주지 않습니다)

답변1

각 줄의 첫 번째 발생에만 교체를 적용하려면 g(전역) 수정자를 제거하면 됩니다.

sed 's/ /\t/' input

(POSIX 클래스에는 [[:space:]]탭 문자가 포함되어 있으므로 요구 사항에 비해 과잉입니다.)


참고로, GNU 버전에는 sed숫자로 대체할 일치 항목을 명시적으로 지정하는 등 몇 가지 추가 기능이 있습니다.

$ sed 's/ /\t/1' input
AC      12 45
DC      56 89
$ sed 's/ /\t/2' input
AC 12   45
DC 56   89

답변2

다음을 삭제해야 합니다 g.

sed 's/ /\t/' file

그렇지 않은 경우 gsed는 해당 줄의 첫 번째 항목만 일치합니다.

관련 정보