저는 Linux를 처음 사용합니다. .conf
텍스트 편집기를 사용하지 않고 열린 터미널에서만 파일 을 편집해야합니다 . 즉, 열린 터미널에서 구성 파일에 단어와 문장을 추가 할 수 있습니까?
예 : command /home/.../file.conf -add 'abcd'
23 행 등. 그리고 마지막으로 저장하십시오.
해당 구성 파일에서 특정 단어를 검색하고 명령 만 사용하여 해당 구성 파일의 다음 줄에 새 텍스트를 추가 할 수 있습니까?
저는 Linux를 처음 사용합니다. .conf
텍스트 편집기를 사용하지 않고 열린 터미널에서만 파일 을 편집해야합니다 . 즉, 열린 터미널에서 구성 파일에 단어와 문장을 추가 할 수 있습니까?
예 : command /home/.../file.conf -add 'abcd'
23 행 등. 그리고 마지막으로 저장하십시오.
해당 구성 파일에서 특정 단어를 검색하고 명령 만 사용하여 해당 구성 파일의 다음 줄에 새 텍스트를 추가 할 수 있습니까?
답변:
나는 일반적으로 스크립트를 프로그래밍 할 때 프로그래밍 방식으로 요구하는 것과 동일하게 수행 할 때이 방법을 사용합니다.
echo "Hello you!" >> myfile.txt
echo "this is 2nd line text" >> file.txt
echo "last line!" >> file.txt
짜잔! 맞아요. 중요한 것은 >>
기존 파일에 줄 바꿈을 추가하는 동시에 >
모든 것을 덮어 쓰는 것을 의미합니다.
열린 터미널에서 구성 파일에 단어와 문장을 추가하는 것은 sed로 쉽게 수행 할 수 있습니다.
sed -i '23iabcd' file.conf
23 행에서 텍스트 abcd
를 파일에 삽입file.conf
-i
파일을 직접 수정합니다 file.conf
.
사용하려면 awk
다음을 수행하십시오.
awk -v n=23 -v s="abcd" 'NR == n {print s} {print}' file > file.conf
다음은 SearchPattern 다음에 한 줄을 추가합니다.
sed -i '/SearchPattern/aNew Text' SomeFile.txt
SearchPattern이 포함 된 각 줄 아래에 한 줄씩 새 텍스트를 삽입합니다.
두 줄을 추가하려면 a를 사용하고 \
새 텍스트를 입력하는 동안 줄 바꿈을 입력하면됩니다.
sed -i '/pattern/a \
line1 \
line2' inputfile
printf
명령을 사용할 수도 있습니다 .
파일에 줄을 추가하려면
$ printf "\nThis is a new line to your document" >> file.txt
파일을 덮어 쓰려면
$ printf "This overwrites your file" > file.txt
awk '{if ($1 ~ /regex/) print $1 "content to be added"; else print $1}' < inputfile > outputfile
노트:
작동 방식 :
inputfile
, 입력 라인을 읽기 위해 취소 outputfile
및 출력 라인을 쓰기 위해 열ed
명령을 사용하여 내 자신의 질문에 대한 해결책을 찾았습니다.
ed -s /home/.../abc.conf <<< $'23i\ntext\n.\nwq'
텍스트는 27 줄을 포함 할 수 있습니다. 텍스트 파일에서 27 줄을 복사하고 구성 파일에 27 줄을 붙여 넣을 수 있습니다. 그러나 ed
동일한 구성 파일에 더 많은 텍스트를 추가 하려면 명령을 동시에 실행해야 합니다.
sed
도움이 될 것 같습니다 .