텍스트 파일의 첫 번째 공백과 첫 번째 탭 사이의 문자열을 제거하는 데 문제가 있습니다 \s
(탭은 유지되어야 함).\t
입력 예:
col1_frame1 unimportant a b c
샘플의 예상 출력:
col1_frame a b c
이것을 시도했지만 sed 's/ .*\t/\t/'
잘못된 결과가 나왔습니다.
내 예제 출력(이전 sed 사용):
col1_frame c
답변1
이는 .*
무엇이든 일치하고(정규식 와일드카드이기 때문에) 마지막 탭이 표시될 때까지(그리고 그 사이에 다른 탭을 포함할 때까지) 가능한 한 멀리 확장할 수 있기 때문입니다. 원하는 것은 [^\t]*
탭 문자를 포함하지 않는 모든 문자열과 일치하는 것이므로 결합된 sed에 대한 호출은 다음과 같아야 합니다.sed 's/ [^\t]*\t/\t/'