gpt4 book ai didi

linux - 如何在 Linux 中的一行中的第一个字节后插入一个字符

转载 作者:IT王子 更新时间:2023-10-29 01:26:03 26 4
gpt4 key购买 nike

我有一个设置文件状态 1,2,3 意思是在第一个、第二个和第三个 字节 之后放置一个 ,

例如我的输入是

stackoverflow

那我就想做

s,t,a,ckoverflow

我应该如何使用 Linux 工具来完成它?感觉应该用sed,但是不知道怎么用。

编辑:

我有 10 多个逗号要放置。并且该行还包括多字节字符。

最佳答案

sed :

echo stackoverflow | sed 's/./&,/1;s/./&,/3;s/./&,/5'

s/.../.../n替换第 n 个匹配项。在第一次替换之后,第二个字节现在是第三个匹配项,之后,第三个字节现在是第五个。

或者,使用正则表达式组:

echo stackoverflow | sed 's/\(.\)\(.\)\(.\)/\1,\2,\3,/'

在基本正则表达式 (BRE) 中,\(…\)用于对表达式进行分组。您可以使用 \<em>n</em> 引用与第 n 组匹配的文本, 例如,在替换中重新使用匹配的文本。所以,在这种情况下,我有三个组,每个组只包含 . .

使用 GNU sed,您可以避免 \通过使用扩展正则表达式 (ERE):

echo stackoverflow | sed -r 's/(.)(.)(.)/\1,\2,\3,/'

对于多字节字符集,尝试使用 C 语言环境:

$ echo 'æ  ' | LC_ALL=C sed 's/\(.\)\(.\)\(.\)/\1,\2,\3,/'
�,�, ,
$ echo → | LC_ALL=C sed 's/\(.\)\(.\)\(.\)/\1,\2,\3,/'
�,�,�,

关于linux - 如何在 Linux 中的一行中的第一个字节后插入一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35554348/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com