How to replace one character with two characters using tr

前端 未结 5 1508
栀梦
栀梦 2020-12-17 08:10

Can tr replace one character with two characters?

I am trying to replace \"~\" with \"~\\n\" but the output does not produce the newline.

$ echo \"a         


        
5条回答
  •  囚心锁ツ
    2020-12-17 08:37

    No, tr is specifically intended to replace single characters by single characters (or, depending on command-line options, to delete characters or replace runs of a single character by one occurrence.).

    sed is probably the best tool for this particular job:

    $ echo "asdlksad ~ adlkajsd ~ 12345" | sed 's/~/~\n/g'
    asdlksad ~
     adlkajsd ~
     12345
    

    (Note that this requires sed to interpret the backlash-n \n sequence as a newline character. GNU sed does this, but POSIX doesn't specify it except within a regular expression, and there are definitely older versions of sed that don't.)

提交回复
热议问题