linux - 在文件的一列中搜索并替换空值和点

标签 linux sed awk

我想使用 awksed 搜索和替换文件列中的空值和点。

文件内容为:

02-01-12 28.46
02-02-12 27.15
02-03-12 
02-04-12 27.36
02-05-12 47.57
02-06-12 27.01
02-07-12 27.41
02-08-12 27.27
02-09-12 27.39
02-10-12 .
02-11-12 27.44
02-12-12 49.93
02-13-12 26.99
02-14-12 27.47
02-15-12 27.21
02-16-12 27.48
02-17-12 27.66
02-18-12 27.15
02-19-12 51.74
02-20-12 27.37

点和空值可以出现在文件中的任何行中,我想用上面的值替换空和点,比如,

02-01-12 28.46
02-02-12 27.15
02-03-12 27.15     ****** replace with the above value
02-04-12 27.36
02-05-12 47.57
02-06-12 27.01
02-07-12 27.41
02-08-12 27.27
02-09-12 27.39
02-10-12 27.39     ****** replace with the above value
02-11-12 27.44
02-12-12 49.93
02-13-12 26.99
02-14-12 27.47
02-15-12 27.21
02-16-12 27.48
02-17-12 27.66
02-18-12 27.15
02-19-12 51.74
02-20-12 27.37

最佳答案

这可能对你有用(GNU sed):

 sed -i '$!N;s/^\(.\{9\}\(.*\)\n.\{9\}\)\.\?$/\1\2/;P;D' file

关于linux - 在文件的一列中搜索并替换空值和点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10823147/

相关文章:

linux - 如何构建相同的 Linux 内核两次源并获得相同的校验和

c++ - 素数查找器找不到素数,在 7 后停止

正则表达式命令行更改每行的格式

linux - 使用 sed 获取日期

linux - 使用 tac 和 sed 反转文件

ruby - 使用 Ruby 命令行的类似 Awk 的 BEGIN 和 END

c++ - 使用PST SDK编译错误

linux - bash 脚本中的 sed 输出在 CLI 中有效,在 cron 中输出不同

regex - 用于在文本文件中搜索列的正则表达式

bash - LINUX - grep 并注释掉来自 fstab 的行