我熟悉sed awk和grep的基本知识。我有一个有11个字段的文件。在第10和第11个区域我有经纬度坐标。它们的结构如下:-555555。我想做的是在两个字段中的两位数字后插入句点。所以期望的结果是-55.5555。使用awk/sed或其他工具,我最好的方法是什么?
文件示例:

01 00460 Adamsville city     AL    4161   1554 0000007948 0000000000 +33595542 -086957993

最佳答案

使用awk可以执行以下操作:

awk '{for (i=NF-1; i<=NF; i++) sub(/^[-+]?[0-9][0-9]/, "&.", $i)} 1' file
01 00460 Adamsville city AL 4161 1554 0000007948 0000000000 +33.595542 -08.6957993

这个awk命令在in last 2字段的开头搜索regex模式[-+]?[0-9][0-9],并用匹配的文本+点替换它。
Code Demo

关于bash - 在某个字段的字符串中附加一个字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27310850/

10-13 00:26