개행 없이 파일 시작 부분에 탭 문자 추가

개행 없이 파일 시작 부분에 탭 문자 추가

매우 유사한 질문이 여러 번 요청되었을 수 있습니다.파일의 첫 번째 줄 앞에 텍스트를 삽입하는 방법은 무엇입니까?

그러나 이러한 모든 솔루션은 탭을 추가한 다음 파일 시작 부분에 다시 줄을 추가합니다. 첫 번째 행의 시작 부분에 탭을 추가하고 싶습니다. 어떻게 해야 하나요?

매우 감사합니다

답변1

한 가지 접근 방식은 쉘이 <(...)구조를 이해할 만큼 똑똑하고 echo처리 방법 -n-e옵션을 알 만큼 똑똑하다고 가정하는 것입니다.

cat <(echo -ne '\t') file

또는:

( printf '\t'; cat file ) >new_file

이 작업을 수행해야 하는 경우 다음 사항을 알 만큼 똑똑 sed하다고 가정합니다 .sed\t

sed '1s/^/\t/' file

그러나 이것은 귀하의 sed.

답변2

POSIX 사양을 사용하세요 ex. 파일 시작 부분에 탭-줄바꿈 시퀀스를 추가한 다음 명령을 실행 ex합니다 join.

이는 파일이 비어 있는지 여부에 관계없이 작동하며 모든 UNIX 또는 Linux 시스템에 완전히 이식 가능해야 합니다.

(파일이 빈 파일로 시작하는 경우 이 명령 다음에 나오는 내용은 탭입니다.그리고개행 문자. 기술적으로 말하면, 종료 줄 바꿈이 없는 파일은 실제로 텍스트 파일이 아닙니다. )

printf '0a\n\t\n.\n1j!\nx\n' | ex myfile.txt

명령을 단독으로 실행하면 다음 printf명령에 전달된 지침을 볼 수 있습니다 ex.

$ printf '0a\n\t\n.\n1j!\nx\n'
0a

.
1j!
x

위의 빈 줄에는 탭 문자가 있다는 점에 유의하세요.

답변3

sed '1 s/^/\t/' < textfile.txt

관련 정보