echo 명령을 사용하여 마지막 줄 앞에 여러 줄을 추가하는 방법

echo 명령을 사용하여 마지막 줄 앞에 여러 줄을 추가하는 방법
{  
  This is test1  
  this is test2  
  this is test3  
}

이제 echo 명령을 사용하여 마지막 줄 앞에 여러 줄을 추가하고 싶습니다. ! ! !

내 출력은 다음과 같습니다

{  
  This is test1  
  this is test2  
  this is test3  
  this is test4  
  this is test5  
}  

사용에코sed가 아닌 명령 또는 awk 명령

답변1

sed어떤 이유로든 사용하고 싶지 않다고 하더라도 이 작업을 수행하는 올바른 방법입니다 sed.

sed 스크립트는 다음과 같습니다

$i\
  this is test4\
  this is test5

sed -f script.sed filei명령은 주소가 지정된 줄 앞에 줄을 삽입하고 $파일의 마지막 줄을 지정합니다 .

GNU를 사용하는 "하나의 라이너"로 sed:

$ sed -e '$i\' -e '  this is test4\' -e '  this is test5' file
{
  This is test1
  this is test2
  this is test3
  this is test4
  this is test5
}

파일이 실제로 JSON 파일인지 아니면 다른 구조화된 텍스트 형식인지에 따라 jq파일 조작에 더 적합한 유사한 도구가 있을 수 있습니다.


요청한 대로 사용하십시오 echo( 옵션은 일반적으로 음수를 사용하지 않으므로 headGNU coreutils를 사용한다고 가정합니다).-n

{   head -n -1 file
    echo '  this is test4'
    echo '  this is test5'
    tail -n 1 file; } >newfile

답변2

head다음을 사용 하여 echo이를 달성 할 수 있습니다 .

  cat <outputfilename> | head -n -1  && echo -e "  this is test4\n  this is test5\n  this is test6\n}"

출력을 파일에 추가하려면 " >" 출력 리디렉션을 사용하십시오.

  (cat <outputfilename> | head -n -1  && echo -e "  this is test4\n  this is test5\n  this is test6\n}") > <RESULTFILENAME>

관련 정보