如何在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