查找和替换特定列中的短划线

2024-09-24 20:40:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个有五列的文件。在

文件1看起来像:

1111    1111    exm-IND1-200449980  I   I

1111    1111    exm-IND1-201453487  I   -

1111    1111    exm-IND1-85310248   I   I

1111    1111    exm-IND10-102817747 D   D

1111    1111    exm-IND10-18329639  -   D

1111    1111    exm-IND10-27476467  I   I

1111    1111    exm-IND10-27727540  D   -

我想去掉-,但只在第4列和第5列中,并在这些实例中用0替换{}。我一直在使用以下代码行:

^{pr2}$

为了解决这个问题,但觉得这有点笨拙。有人对这个问题有更简明的建议吗?因为我会经常遇到它。在

提前谢谢你的帮助。在


Tags: 文件实例代码建议我会exmpr2ind1
3条回答
awk '{gsub(/-/,"0",$4);gsub(/-/,"0",$5)}1' test.in | column -t

column是为了保持良好的格式,如果不需要,可以删除它。在

Awk是更好的选择:

awk '{sub("-","0",$4); sub("-","0",$5); print}'

(更新以反映您更新的问题)

GNU使用

sed -r ':k;s/-(\s*\S*)$/0\1/g;tk' file

..输出:

^{pr2}$

相关问题 更多 >