如何在字符串
中匹配后添加文件内容我有一个文件名是 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"`
在这个文件中,我想添加另一个文件内容。
为Backup.txt
allscript=`ls *.sh | paste -d "," -s`
export IFS=","
for script in $allscript; do
done
我希望在 lokesh.sh < LOGFILE = / var / www / modules / backup / log / lokesh.log 后面添加backup.txt文件内容的内容/ p>
添加文件后的预期输出
#_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 :(得分:1)
您可以使用r
中的sed
命令附加从backup.txt读取的文本。
这将发生在带有字符串“LOGFILE”
sed '/LOGFILE/ r backup.txt' lokesh.sh
答案 1 :(得分:0)
以下可能会完成您的任务。
awk '/LOGFILE=\/var\/www\/modules\/backup\/log\/lokesh.log/{print;system("cat backup.txt");next} 1' lokesh.sh
说明:只需搜索字符串LOGFILE=/var/www/modules/backup/log/lokesh.log
并在其中隐藏/
(以删除它的特殊含义),一旦在任何行中找到此字符串然后打印当前行并使用awk
的{{1}}实用程序,我们可以在其中调用shell命令。在提到system
后,使用cat backup.txt
命令打印backup.txt
文件,这将跳过所有进一步的语句。最后提到1将打印所有行,因此next
适用于awk
的方法。这里我通过提及condition then action
使条件为TRUE并且未指定任何操作,因此默认情况下将发生打印操作(打印当前行)。之后提到lokesh.sh作为Input_file。