Chinaunix
标题:
如何替换数据中最后一列分隔符?
[打印本页]
作者:
gooderpan
时间:
2019-08-12 16:05
标题:
如何替换数据中最后一列分隔符?
本帖最后由 gooderpan 于 2019-08-12 17:23 编辑
比如文件如下以空格作为分隔符:
1 you are a goog woman
2 iam b
3 are a vitb
只想把最后一列的分隔符替换:如下
1 you are a good
---
woman
2 iam
---
b
3 are a
---
vitb
这种形式,
各位大神有什么好的方法么?只是想知道
mac系统的terminal
下面有没有相应的简单的命令
作者:
jzsjm1002
时间:
2019-08-12 16:33
awk '{for(i=0;++i<=NF-1;)printf "%s",i==1?$i:" "$i;printf "---%s",$NF;print ""}' file
复制代码
作者:
cfwyy
时间:
2019-08-12 16:41
sed -E 's/ (\w+$)/---\1/' file
复制代码
作者:
gooderpan
时间:
2019-08-12 17:08
回复
3#
cfwyy
你好,我在mac的终端运行,貌似不行呀。请问您这是怎么回事呢??
作者:
legs
时间:
2019-08-13 11:00
perl -pe's#.*\K #---#' file
作者:
gooderpan
时间:
2019-08-13 11:12
回复
5#
legs
谢谢大神,你的命令可以执行。请问,是不是用sed在该处处理的效果不好呀?
作者:
cfwyy
时间:
2019-08-13 12:42
回复
4#
gooderpan
没有mac, 我这好用的。
作者:
legs
时间:
2019-08-13 14:09
gooderpan 发表于 2019-08-13 11:12
回复 5# legs 谢谢大神,你的命令可以执行。请问,是不是用sed在该处处理的效果不好呀?
Mac那是非GNU sed,我这FB下用sed可以下面这样用,你试一下:
sed -E 's#(.*) #\1---#'
复制代码
作者:
WilliBhamlll
时间:
2019-08-13 15:32
awk '$--NF=$(NF-1)"---"$NF' file
复制代码
作者:
Shell_HAT
时间:
2019-08-19 14:21
回复
4#
gooderpan
在你的Mac里面分别试试:
sed 's/ \(\w\+\)$/---\1/' 1.txt
复制代码
sed 's/ \([^ ]\+\)$/---\1/' 1.txt
复制代码
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2