我在Linux OS中有一个包含一些随机数的文件:
1
22
333
4444
55555
666666
7777777
88888888
Run Code Online (Sandbox Code Playgroud)
现在,我有两个条件:1.从每个条目中删除最后3位数字并/在休息之间放置.2.对于数字<= 3,只需添加/替换/符号.
命令我正在尝试满足第一个要求的是:
sed -e 's|\(.\)|\1/|g;s|\(.*\)/\(.\/\)\{3\}|\1|g'
Run Code Online (Sandbox Code Playgroud)
需要的是:
/
/
/
4
5/5
6/6/6
7/7/7/7
8/8/8/8/8
Run Code Online (Sandbox Code Playgroud)
请帮忙.
这样的事可能适合你:
% sed 's/.\{1,3\}$//;s/./\/&/g;s/.//;s/^$/\//' file
/
/
/
4
5/5
6/6/6
7/7/7/7
8/8/8/8/8
Run Code Online (Sandbox Code Playgroud)
这里没有明智之举:
s/.\{1,3\}$//; # Remove last 3 character
s/./\/&/g; # Insert / before each character
s/.//; # Remove first character (it's now a /)
s/^$/\// # Insert slash on all empty lines
Run Code Online (Sandbox Code Playgroud)
gawk的替代解决方案:
awk -v FS='' -v OFS='/' '{if (NF > 3) NF=(NF-3); else $0 = OFS}1' file
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
66 次 |
| 最近记录: |