을 사용하여 [:space:]
파일의 각 줄의 첫 번째 문자를 바꾸는 방법은 무엇입니까?\t
sed
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
그렇지 않은 경우 g
sed는 해당 줄의 첫 번째 항목만 일치합니다.