首页 > 解决方案 > POSIX:abcdef 到 ab bc cd de ef

问题描述

使用 POSIXsedawk,我想复制每对相邻字符中的每个第二个字符,并在新行上列出每个新形成的对。

示例.txt:

abcd 10001.

预期结果:

ab
bc
cd
d 
 1
10
00
00
01
1.

到目前为止,这就是我所拥有的(注意在 macOS 上省略“--posix”)。 出于某种原因,在前面添加文字换行符\2不会产生预期的结果。删除第一组并使用\1具有相同的效果。我错过了什么?

sed --posix -E -e 's/(.)(.)/&\2\
/g' example.txt

abb
cdd
100
000
1..

标签: shellawksedposix

解决方案


尝试:

$ echo "abcd 10001." | awk '{for(i=1;i<length($0);i++) print substr($0,i,2)}'
ab
bc
cd
d 
 1
10
00
00
01
1.

推荐阅读