sed命令出错

时间:2014-06-30 15:48:06

标签: bash unix awk sed

输入:

43572154    ROR2
43439911    LOC785925
42737842    LOC785930

预期产出

'43572154':'ROR2'
'43439911':'LOC785925'
'42737842':'LOC785930'

使用的命令

sed s/\n/\'\,\n\'/ input #substitute newline with ',\n'
sed s/ /\'\:\'/ input  #substitute <space> with ':'

但似乎对输入没有影响。任何人都可以指出我的错误?日Thnx

2 个答案:

答案 0 :(得分:2)

为什么要尝试更换换行符?试试这个:

sed "s/\([^ ]\+\) \+\(.*\)/'\1':'\2'/" input

编辑 - 或使用扩展正则表达式(-r):

sed -r "s/([^ ]+) +(.*)/'\1':'\2'/" input

答案 1 :(得分:1)

这是基于评论的awk解决方案:

awk "{print \"'\" \$1 \"':'\" \$2 \"'\"}" input