我有一个文本文件 1.txt:
cam:45c62741b9c99e1dcf3c140e8e3df635::dv:[email protected]:83.228.32.24
gamer:3dabd5bd7984b0286eba52d4a7db2dea:$Wm?1Z3MPErXl7%yk^Pc#%iu\9LFc{:[email protected]:93.182.154.63
:adc0a54f8d21694848200ae043fa99f2:GqJ:[email protected]:84.176.127.30
! Aa:da99417e29ab0aa67f97db64f091836b:k_P:[email protected]:82.179.236.154
我想将列分隔符(当前为':')更改为'|| o ||'。我只想更改第一,第三和第四列分隔符,因为第二列包含类似的内容hash:salt
。
我正在尝试的脚本是:
sed 's/:/||o||/1;s/:/||o||/2;s/:/||o||/2' 1.txt
唯一的问题是结果中的盐中包含“:”。我得到的输出是:
cam||o||45c62741b9c99e1dcf3c140e8e3df635:||o||dv||o||[email protected]:83.228.32.24
gamer||o||3dabd5bd7984b0286eba52d4a7db2dea:$Wm?1Z3MPErXl7%yk^Pc#%iu\9LFc{||o||[email protected]||o||93.182.154.63
||o||adc0a54f8d21694848200ae043fa99f2:GqJ||o||[email protected]||o||84.176.127.30
! Aa||o||da99417e29ab0aa67f97db64f091836b:k_P||o||[email protected]||o||82.179.236.154
输出的第一行是错误的。
Expected output :
cam||o||45c62741b9c99e1dcf3c140e8e3df635::dv||o||[email protected]||o||83.228.32.24
其余的输出是正确的。
我期望的是从正向替换第一':',第二次从后向替换,因此盐中的':'被忽略。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句