shell - POSIX:abcdef 到 ab bc cd de ef
问题描述
使用 POSIXsed
或awk
,我想复制每对相邻字符中的每个第二个字符,并在新行上列出每个新形成的对。
示例.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..
解决方案
尝试:
$ 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.
推荐阅读
- oracle - 在 Oracle View 的 where 子句中添加条件
- angular - 初始化表单后,Angular Reactive表单设置具有禁用属性的值
- javascript - 如何修复谷歌地图折线直线拥堵?
- multithreading - 如果函数不使用全局数据,为什么它们在机器代码级别上是线程安全的?
- sql - 添加非空列从其他列获取值
- linux - Bash for 循环 - 表达式中的语法错误(错误标记为“2”)
- c - 如何在C语言中设置物流程序的开始菜单?
- c++ - 特定的 Boost 正则表达式可以正常工作,但如果我在 Boost 单元测试中使用它,它会崩溃
- regex - 如何在正则表达式匹配之前返回列表的所有元素?
- docker - ZAP 守护程序在 localhost 上侦听