开发者

inserting text into a specific line

I've got a text file, and using Bash I wish to insert text into into a specific line.

开发者_运维百科Text to be inserted for example is !comment: http://www.test.com into line 5

!aaaa
!bbbb
!cccc
!dddd
!eeee
!ffff

becomes,

!aaaa
!bbbb
!cccc
!dddd
!comment: http://www.test.com
!eeee
!ffff


sed '4a\
!comment: http://www.test.com' file.txt > result.txt

i inserts before the current line, a appends after the line.


you can use awk as well

$ awk 'NR==5{$0="!comment: http://www.test.com\n"$0}1' file
!aaaa
!bbbb
!cccc
!dddd
!comment: http://www.test.com
!eeee
!ffff


Using man 1 ed (which reads entire file into memory and performs in-place file editing without previous backup):

# cf. http://wiki.bash-hackers.org/doku.php?id=howto:edit-ed
line='!comment: http://www.test.com'
#printf '%s\n' H '/!eeee/i' "$line" . wq | ed -s file
printf '%s\n' H 5i "$line" . wq | ed -s file
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜