텍스트 파일의 시작 부분에 텍스트 추가

텍스트 파일의 시작 부분에 텍스트 추가

텍스트 파일의 시작 부분에 텍스트 한 줄(실제로는 텍스트가 아니고 백슬래시 두 개만 추가)을 추가하려고 합니다. 이 답변에서 찾은 다음을 시도하고 있습니다.대용량 파일의 시작과 끝 부분에 줄 추가

$ sed -i '1i\'"$\\" $Simdata.txt

그러나 나는 그것을 작동시킬 수 없는 것 같습니다. 위의 내용을 사용하면 오류가 발생합니다.

sed: 1: ".txt": invalid command code .

txt 엔딩을 사용하지 않으려고 했지만 다음 오류가 발생합니다.

sed: -i may not be used with stdin

나는 또한 다른 곳에서 찾은 다음 코드 줄을 시도했습니다.

$ sed -i '1i \\' Simdata.txt
sed: 1: "Simdata.txt": invalid command code S

고쳐 쓰다:

@don_crissti, 귀하의 첫 번째 솔루션이 제가 원하는 것입니다. 그러나 예상대로 작동하지 않는 것 같습니다.

$ cat Simdata.txt
abcdefghijkabcdefghijk
//
abcdefghijkabcdefghijk
$ sed '1i\
> \\\\' Simdata.txt
\\abcdefghijkabcdefghijk
//
abcdefghijkabcdefghijk
$ cat Simdata.txt
abcdefghijkabcdefghijk
//
abcdefghijkabcdefghijk

따라서 파일이 업데이트되지 않습니다. 파일을 인쇄하고 싶지 않고 파일을 업데이트하거나 새 파일로 인쇄하기만 하면 됩니다. 또한 나는 어리석은 오타를 만들었습니다. 실제로 두 개의 슬래시를 추가하고 싶었습니다. 나의 최종 목표는 다음과 같습니다.

다음과 같은 파일이 있습니다.

abcdefghijkabcdefghijk
//
abcdefghijkabcdefghijk
//
abcdefghijkabcdefghijk

먼저 파일 시작 부분에 //를 추가하고 싶습니다.

//
abcdefghijkabcdefghijk
//
abcdefghijkabcdefghijk
//
abcdefghijkabcdefghijk

그런 다음 각 // 뒤에 고유한 이름을 추가합니다.

// text 1
abcdefghijkabcdefghijk
// text 2
abcdefghijkabcdefghijk
// text 3
abcdefghijkabcdefghijk

원본 파일을 변경하지 않고 새 파일에 저장합니다. 따라서 위의 질문은 첫 번째 단계를 파악하는 것입니다.

답변1

백슬래시를 이스케이프 처리해야 합니다. 따라서 4개의 백슬래시가 2개의 리터럴 백슬래시를 삽입하게 됩니다.

sed '1i\
\\\\' my_text_file

또는

sed '1s/^/\\\\\n/' my_text_file

첫 번째는 파일 시작 부분에 두 개의 백슬래시가 포함된 새 줄을 삽입하고, 두 번째는 첫 번째 줄의 시작 부분( ) ^을 두 개의 백슬래시와 \newline으로 대체합니다(동일한 결과).
그리고 osx sed:

sed '1s/^/\\\\\'$'\n/' mytextfile   

답변2

\\파일 시작 부분에 두 개를 추가하려면이것작동해야 합니다:

echo '\\' | cat - todo.txt > temp && mv temp todo.txt

답변3

echo '\\\\' > newfile.txt; cat oldfile.txt >> newfile.txt

관련 정보