파일의 뒷부분이 아닌 "지정된 매개변수 내" 줄로 텍스트 문자열을 리디렉션할 수 있나요? 또는 명령/및/또는 인수, 하위 쉘의 조합(리디렉션을 통해 불가능한 경우).
답변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
로드 하려고 하면 누군가가 해당 디렉터리에 악성 코드를 심었을 수 있습니다. 시스템과 함께 제공되는 확장 프로그램 의 경로 는 다를 수 있습니다. 출력을 참조하세요.inplace
inplace
inplace.awk
inplace
gawk
gawk 'BEGIN{print ENVIRON["AWKPATH"]}'