텍스트를 리디렉션한 다음 지정된 줄 번호에 쓰는 방법은 무엇입니까?

텍스트를 리디렉션한 다음 지정된 줄 번호에 쓰는 방법은 무엇입니까?

파일의 뒷부분이 아닌 "지정된 매개변수 내" 줄로 텍스트 문자열을 리디렉션할 수 있나요? 또는 명령/및/또는 인수, 하위 쉘의 조합(리디렉션을 통해 불가능한 경우).

답변1

GNU 사용 awk:

text_string='some arbitrary
text'
line_number=12
file=/some/file

STRING="$text_string" gawk -i /usr/share/awk/inplace.awk -v n="$line_number" -e '
  NR == n {print ENVIRON["STRING"]}
  {print}' -E /dev/null "$file"

perl같은

perl -spi -e '$_ = "$string\n$_" if $. == $n
  ' -- -string="$text_string" -n="$line_number" -- "$file"

파일을 그 자리에서 편집합니다(효과적으로 편집된 복사본으로 대체).

gawk 변형은 이라는 파일에서는 작동하지 않습니다 . 현재 디렉터리에서 호출된 파일을 -편집하려면 대신 .-./-

반품,사용하지 마세요-i inplace현재 작업 디렉터리(as or)에서 확장 기능을 먼저 gawk로드 하려고 하면 누군가가 해당 디렉터리에 악성 코드를 심었을 수 있습니다. 시스템과 함께 제공되는 확장 프로그램 의 경로 는 다를 수 있습니다. 출력을 참조하세요.inplaceinplaceinplace.awkinplacegawkgawk 'BEGIN{print ENVIRON["AWKPATH"]}'

관련 정보