我有一个^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|
答案 0 :(得分:2)
如果您指的是控制字符:
sed 's/\x01/|/g'
tr '\001' '|'
如果您指的是双字符序列^A
:
sed 's/\^A/|/g'
gsub( /\^A/,"|" )
答案 1 :(得分: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