2017-10-03 2 views
0

나오지 명령은 문자열에 경기 후 파일 내용을 추가하는 방법

내가 하나의 파일 이름이 파일에서 lokesh.sh

#_AdditionalMail: 
#_WeekName: 
TARGETDIR=`date +'%A'` 
LOCKFILE=/tmp/backup_profile_lokesh.tmp 
LOGFILE=/var/www/modules/backup/log/lokesh.log 
me=`basename "$0"` 
volumename=`sudo awk '/mnt/{i++}i==2' /var/www/modules/backup/profiles/"$me"` 
chkmount=`sudo mount | grep -w "$volumename"` 

있다가 내가 다른를 추가 할 일치하는 문자열 후 파일을 추가하려면 파일 내용.

내가 록쉬에/lokesh.log 로그/줄 끝에서 LOGFILE =/var에/www가/모듈/백업을 Backup.txt 파일 내용의 콘텐츠를 추가 할

allscript=`ls *.sh | paste -d "," -s` 
export IFS="," 
for script in $allscript; do 
done 

을 Backup.txt. 쉬

예상 출력 파일

#_AdditionalMail: 
#_WeekName: 
TARGETDIR=`date +'%A'` 
LOCKFILE=/tmp/backup_profile_lokesh.tmp 
LOGFILE=/var/www/modules/backup/log/lokesh.log 
allscript=`ls *.sh | paste -d "," -s` 
export IFS="," 
for script in $allscript; do 
done 
me=`basename "$0"` 
volumename=`sudo awk '/mnt/{i++}i==2' /var/www/modules/backup/profiles/"$me"` 
chkmount=`sudo mount | grep -w "$volumename"` 
를 추가 한 후

답변

0

다음 작업을 완료 할 수 있습니다.

awk '/LOGFILE=\/var\/www\/modules\/backup\/log\/lokesh.log/{print;system("cat backup.txt");next} 1' lokesh.sh 

설명 : 단순히이 문자열이 후 현재 행을 인쇄하고 awksystem 유틸리티를 사용하여 모든 라인에서 발견되면, (그 특별한 의미의 제거하기 위해) 그 안에 / 탈출과 문자열 LOGFILE=/var/www/modules/backup/log/lokesh.log 검색 쉘 명령이라고 부를 수 있습니다. cat backup.txt 명령을 사용하여 파일을 인쇄 한 후 next을 언급하면 ​​이후의 모든 명령문은 건너 뜁니다. 마지막으로 언급 한 1 모든 라인을 인쇄하므로 condition then action의 방법에 awk 작품. 여기서는 1을 언급하여 조건을 TRUE로 만들고 동작을 지정하지 않으므로 기본적으로 인쇄 작업이 수행됩니다 (현재 행 인쇄). 그 후 Input_file로 lokesh.sh를 언급합니다.

1

sedr 명령을 사용하여 backup.txt에서 읽은 텍스트를 추가 할 수 있습니다. 그리고 "LOGFILE"문자열이있는 행 다음에 열 수 있습니다.

sed '/LOGFILE/ r backup.txt' lokesh.sh