我有以下文本文件:
20170110 120000
'Location ' 67.57-164.07 30.0 3.78 128.6 0.00 270.0
现在我想要的是在67.57和-164.07之间插入一个空格,以便文本文件现在看起来像:
20170110 120000
'Location ' 67.57 -164.07 30.0 3.78 128.6 0.00 270.0
我知道我可以使用awk或sed命令查看有关此信息,但可用信息含糊不清,并不具体到我要查找的内容。您对我能做些什么来获得理想的结果有什么建议吗?
答案 0 :(得分:2)
使用sed:
在每个-
前面添加空格,而不是空格
$ sed 's/\([^[:blank:]a-z]\)-/\1 -/g' file
20170110 120000
'Location-aware ' 67.57 -164.07 30.0 3.78 128.6 0.00 270.0
修改:将[^ ]
更改为[^[:blank:]a-z]
以获取@ Neron-Le-Velu的建议; D.
答案 1 :(得分:1)
在第一个-
之前添加空格:
sed "s/-/ &/" file
答案 2 :(得分:1)
sed 's/^\('[^']*[[:blank:]]*\.[0-9]\{1,2\}\)-/\1 -/' YourFile
假设要在带引号的字符串之后的第一个数字之后插入空格,该字符串至少有一个十进制值,后面紧跟一个“ - ”
不知道价值和格式太懒,不允许进行特定修改,你应该假设一些(比如“字段”大小,字段格式......)
答案 3 :(得分:0)
这是awk中的一小部分。但它只适用于您的特殊情况,因为这个衬里有一个固定值。
'NR==2{gsub("-164.07"," -164.07")}{ print}' your_file