bash - 用 awk 分隔连接的列

标签 bash vim awk

我有一个如下所示的数据文件:

0.00000-130250.92921  28880.20200-159131.13121    301.58706
0.05000-130250.73120  28156.69202-158407.42322    294.03167
0.10000-130250.79137  28237.16138-158487.95275    294.87198
0.15000-130250.81209  28168.63042-158419.44250    294.15634
0.20000-130250.82418  28149.57611-158400.40029    293.95736
0.25000-130250.88438  28069.57135-158320.45573    293.12189
0.30000-130251.06059  28071.30576-158322.36635    293.14000
0.35000-130250.96639  28084.46351-158335.42990    293.27741

如您所见,一些以“-”符号开头的列是 加入前一个,例如:0.35000-130250.96639 这应该是 0.35000 和 -130250.96639。我可以分开 使用 VIM 的列,但我想知道是否可以这样做 使用 AWK。

谢谢。

最佳答案

您可以使用 sed:将每个 - 替换为空格和 -:

sed -e 's/-/ -/g' input > output

/g 表示全局,即它会替换每一行中出现的所有内容,而不仅仅是第一行。

关于bash - 用 awk 分隔连接的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33955512/

相关文章:

bash - 当脚本陷阱 EXIT 时,docker 卡在 SIGINT 上

linux - 这个蛋糕上的命令是做什么的?

bash - Bash 中的命令行参数

vim - Ubuntu下gVim最大化时 `:tabnew'命令的问题

vim - 在 Vim 中控制选项卡名称

linux - echo 无符号 64 位变量

vim - 如何在vim中去除文件类型扩展名

linux - 使用 awk/sed 在制表符分隔文件中间添加重复内容

regex - Sed、awk 或 perl 捕获 2 种模式之间的线条

linux - 如何计算linux中的平均值?