【发布时间】:2016-09-11 20:22:53
【问题描述】:
我从数据库中检索到的随机数很少。例如。
12203770
6458251
6458250
10336719
10366878
10366877
10366874
81048
现在,我必须在它们之间放置分隔符“/”。我正在使用这个命令:
[root@abc01 ~]# awk 'BEGIN{FS="";OFS="/"} {print $1,$2,$3,$4,$5}' /tmp/abc.txt
如果数字是 8 位数字,这可以正常工作,但我的 requirement 是:
命令/脚本应从右侧保留最后 3 位数字,其余的将打印带分隔符的数字。
所需的输出:
1/2/2/0/3
6/4/5/8
6/4/5/8
1/0/3/3/6
1/0/3/6/6
1/0/3/6/6
1/0/3/6/6
8/1
请帮助。
【问题讨论】:
-
您能解释一下为什么
6458251(6/4/5/8) 的预期输出与6458250(6/4/5/8/) 的预期输出不同吗? -
sed -e 's|\(.\)|\1/|g;s|\(.*\)/\(.\/\)\{3\}|\1|g' /tmp/abc.txt -
@Simon 道歉,这是一个错字。我将编辑更改。
-
What have you tried so far? 请edit 您的问题显示您遇到问题的代码的minimal reproducible example,然后我们可以尝试帮助解决具体问题。您还应该阅读How to Ask。
-
虽然,答案很有帮助,但如果我输入的数字小于 3,这些都不起作用。比如说:123,234 等等。如果数字小于 3,那么代码应该只打印“/”。