如何在UNIX中的特定行之后插入文本行到文件中?如何在unix中的特定行之后插入文本行到文件中
背景:该文件是一个自动生成的文本文件,但手动编辑它时,每次重新生成一行后添加4行。我可以保证这条线总是在文件夹中,但我不能保证它会在哪条线上出现问题,所以我想根据这条线的位置添加额外的线,而不是增加一个固定的排列号。我想将这个过程自动化,因为它是我构建过程的一部分。
我使用的是Mac OSX,所以我可以使用unix命令行工具,但我不是很熟悉这样的工具,不能解决如何做到这一点。
编辑
感谢您的解决方案,虽然我还没有设法让他们工作尚未:
我试图桑达解决方案
sed -i '/<string>1.0</string>/ a <key>CFBundleHelpBookFolder</key>\
<string>SongKongHelp</string>\
<key>CFBundleHelpBookName</key>\
<string>com.jthink.songkong.Help</string>
' /Applications/SongKong.app/Contents/Info.plist
,但得到的错误
sed: 1: "/Applications/SongKong. ...": invalid command code S
,我尝试了bash解决方案离子
#!/bin/bash
while read line; do
echo "$line"
if [[ "$line" = "<string>1.0</string>"]]; then
cat mergefile.txt # or echo or printf your extra lines
fi
done < /Applications/SongKong.app/Contents/Info.plist
,但得到的错误
./buildosx4.sh: line 5: syntax error in conditional expression: unexpected token `;'
./buildosx4.sh: line 5: syntax error near `;'
./buildosx4.sh: line 5: ` if [[ "$line" = "<string>1.0</string>"]]; then'
EDIT 2 现在的工作,我错过了一个空间
#!/bin/bash
while read line; do
echo "$line"
if [[ "$line" = "<string>1.0</string>" ]]; then
cat mergefile.txt # or echo or printf your extra lines
fi
done < /Applications/SongKong.app/Contents/Info.plist
***该文件是如何自动生成的?你能修理发电机吗? – Johnsyweb 2013-02-16 12:04:20
不,我不能,发电机不是由我提供的,也许从长远来看,它会被固定(我提出了一个问题),但不是在短期内。 – 2013-02-16 12:12:28
你尝试过搜索吗?这是一个非常普遍的问题。 – tripleee 2013-02-16 12:15:16