매우 유사한 질문이 여러 번 요청되었을 수 있습니다.파일의 첫 번째 줄 앞에 텍스트를 삽입하는 방법은 무엇입니까?
그러나 이러한 모든 솔루션은 탭을 추가한 다음 파일 시작 부분에 다시 줄을 추가합니다. 첫 번째 행의 시작 부분에 탭을 추가하고 싶습니다. 어떻게 해야 하나요?
매우 감사합니다
답변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