2016-03-04 67 views
0

我有^A文件作爲分隔符:更換分隔符

8bf9f1897035297fb7b0767e4e5e191b2c93ceb^AAustralia^A2016-01-13 05:19:06^A 
8bf9f1897035297fb7b0767e4e5e191b2c93ceb^AAustralia^A2016-01-13 05:19:06^A 
8bf9f1897035297fb7b0767e4e5e191b2c93ceb^AAustralia^A2016-01-13 05:19:06^A 

我如何替換用awk或sed的|分隔符?

所需的輸出:

8bf9f1897035297fb7b0767e4e5e191b2c93ceb|Australia|2016-01-13 05:19:06| 
8bf9f1897035297fb7b0767e4e5e191b2c93ceb|Australia|2016-01-13 05:19:06| 
8bf9f1897035297fb7b0767e4e5e191b2c93ceb|Australia|2016-01-13 05:19:06| 

回答

2
  1. 如果你指的是控制字符:

    • 下面將既GNU和非GNU工作的sed:sed 's/\x01/|/g'
    • 可能快將tr '\001' '|'
  2. 如果您指的是雙字符序列^A

    • sed 's/\^A/|/g'
    • 在AWK可以使用gsub(/\^A/,"|")
1

如果您的sed版本GNU sed的,你可以使用GNU Extensions for Escapes in Regular Expressions,特別是:

`\cX' 
    Produces or matches `CONTROL-X', where X is any character. The 
    precise effect of `\cX' is as follows: if X is a lower case 
    letter, it is converted to upper case. Then bit 6 of the 
    character (hex 40) is inverted. Thus `\cz' becomes hex 1A, but 
    `\c{' becomes hex 3B, while `\c;' becomes hex 7B. 

因此,這將是:

sed -e "s/\ca/|/" < input.txt