Add text at the end of each line

前端 未结 7 2059
死守一世寂寞
死守一世寂寞 2020-11-28 20:24

I\'m on Linux command line and I have file with

127.0.0.1
128.0.0.0
121.121.33.111

I want

127.0.0.1:80
128.0.0.0:80
121.121         


        
7条回答
  •  抹茶落季
    2020-11-28 20:44

    If you'd like to add text at the end of each line in-place (in the same file), you can use -i parameter, for example:

    sed -i'.bak' 's/$/:80/' foo.txt
    

    However -i option is non-standard Unix extension and may not be available on all operating systems.

    So you can consider using ex (which is equivalent to vi -e/vim -e):

    ex +"%s/$/:80/g" -cwq foo.txt
    

    which will add :80 to each line, but sometimes it can append it to blank lines.

    So better method is to check if the line actually contain any number, and then append it, for example:

    ex  +"g/[0-9]/s/$/:80/g" -cwq foo.txt
    

    If the file has more complex format, consider using proper regex, instead of [0-9].

提交回复
热议问题