gpt4 book ai didi

linux - 在awk中将一个字符串拆分成一堆行

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:35:26 24 4
gpt4 key购买 nike

我有几个这样的文件,其中包含 1 行:

CHTACAUSYDUYADUSAYUDYASUDYUASYDUADSYAUDYSUAYDUASDUBASUDASUBDYUASYUCJUAYAYCYUAUAHUAHUHAUHDIADJIOAJDIAHDUADIAJDOJADIJAHUDHAA

我需要将它分成几行,每行添加 1 个字符:

CHTACAUSYDUYAD
CHTACAUSYDUYADU
CHTACAUSYDUYADUY
CHTACAUSYDUYADUYA
CHTACAUSYDUYADUYAD

我正在尝试使用这个 awk 代码:

more +2 file | awk '
{
split($0, chars, "")
for (i=1; i <= length($0); i++) {
printf("%s\n", chars[i])
}
}'

但它每行只打印 1 个字符。有人可以帮助我吗?

最佳答案

看起来问题出在 split 中 - 它会根据空正则表达式打断您的字符串。所以你需要 substr 来代替:

substr(s, i [, n]) Return the at most n-character substring of s starting at i. If n is omitted, use the rest of s.

第一行生成的标准不是很清楚,但让我假设它是由 initial length = 15

完成的
{
initial = 15
for (i=initial; i <= length($0); ++i) {
printf("%s\n", substr($0, 1, i))
}
}

关于linux - 在awk中将一个字符串拆分成一堆行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34268091/

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