명령 줄에서 파일의 두 번째 줄에 어떻게 쓸 수 있습니까? 생성하는 외부 프로그램이 있습니다

출력 파일을 생성하는 외부 프로그램이 있습니다 (약 20K 줄 가능).

기존 줄 1과 줄 2 사이에 새 줄을 삽입해야합니다. awk와 sed를 살펴 봤습니다. 각 줄마다 하나의 라이너를 사용하지만 올바른 스위치를 만들 수 없었습니다. 이 작업을 수행.



답변

awk 'NR==1{print; print "new line"} NR!=1'


답변

구체적인 경우에는이 방법이 더 간단해야합니다.

sed '1 { P ; x }' your-file

설명 : 1 행 에서 다음을 수행하십시오.

  1. P는 선을 RINT
  2. E x 패턴 공간을 유지 공간으로 변경 (기본적으로 버퍼 비우기)

그런 다음 사이클의 일부로 라인 (지금 비어 있음)이 다시 인쇄됩니다.


줄 바꿈 문자 대신 새 줄 을 추가하려면 (처음 이해 한 것) 다음 명령을 사용하십시오 (추가).seda\

sed '1 a\
appended line' your-file

또는

sed '1 aappended line' your-file

appended line1 행 다음 에 ” “를 추가 합니다.


답변

나는 추측 sed방법은 다음과 같습니다

sed '2 i whatever_line_of_text_you_wanted_to_INSERT' filename.txt

그러면 텍스트가 파일의 두 번째 줄로 들어가고 파일에서 실제 두 번째 줄이 세 번째 줄이됩니다.

사용하여, 그 주 추가 모드를 가 될이 있다면, 그것은 줄 번호가 언급 한 후 APPEND가 발생하기 때문에, 첫 번째 라인을 사용했다.

sed '1 a whatever_line_of_text_you_wanted_to_INSERT' filename.txt


답변

sed ':a;N;$!ba;s/\n/\n\n\n/' yourBigFile

설명.


답변

이것은 당신을 위해 일할 수 있습니다 :

sed 1G file

something줄 바꿈 뒤에 삽입하려면 다음을 수행하십시오.

sed '1{G;s/$/something/}' file

또는 핸들을 sed 한 경우 \n:

sed '1s/$/\nsomething/' file

물론 a더 쉽다 :

sed '1a something' file


답변

나는 보통 ed이것을 위해 사용 합니다 :

(echo 1a; echo 'Line to insert'; echo .; echo w) | ed - filename

A와 유사 sed솔루션,하지만 탈출 줄 바꿈의 혼란없이.


답변

파이썬 솔루션

python -c "import sys; lines = sys.stdin.readlines(); lines.insert(1,'New Line\n'); print ''.join(lines).strip()" < input.txt