줄 끝에서 탭 e를 제거합니다.

줄 끝에서 탭 e를 제거합니다.
printf "%s\t" HEMES n{1..1600} >file_a
sed -i 's/\t*$//' file_a > file_a

코드의 첫 번째 줄(내용이 인쇄되는 곳) 뒤의 줄 끝에서 발생하는 탭을 제거합니다.

내 문제는 이제 더 많은 줄이 있는 더 큰 파일에서 해당 줄 뒤의 탭(HEMES로 시작)을 제거해야 한다는 것입니다. 작동하지 않는 sed 라인을 시도하면. 문자를 제거하려는 줄은 항상 파일의 첫 번째 줄입니다.

답변1

한 줄에서 모든 작업을 수행하고 파일로 출력하는 대신 두 부분으로 분리합니다. HEMES 문자열을 출력한 다음 n{1...1600} 시퀀스를 추가합니다 printf "%s" HEMES > file_a; printf "%s\t" n{1..1600} >> file_a.

이미 존재하는 파일에서 HEMES와 n1 사이의 해당 탭을 특별히 제거해야 하는 경우 awk해결 방법은 다음과 같습니다.

awk ' {sub(/[[:blank:]]/,""); print} ' file_a > tmp_file && cat tmp_file > file_a.

이것이 하는 일은 하위 함수를 사용하는 것입니다.첫 번째탭이 나타나면 해당 텍스트를 임시 파일에 출력한 다음 해당 내용을 file_a로 다시 가져옵니다. 파일 간을 전환하는 이유는 다음과 같습니다. 인라인 편집을 허용하는 awk 버전(내 생각에는 gnu awk)을 사용하지 않는 한 awk, mawk, nawk 등 어떤 경우에도 작동합니다.

관련 정보