加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

用FS(awk)分隔字符串的所有字符

发布时间:2020-12-13 23:56:30 所属栏目:Linux 来源:网络整理
导读:我虽然这是一个简单的任务,但不是! 输入(管道分隔): record1|ABCDEFGHrecord2|IJKLMNOP 我需要这个输出: record1|A|B|C|D|E|F|G|Hrecord2|I|J|K|L|M|N|O|P 到目前为止我尝试了什么: awk 'BEGIN{FS=OFS="|"}{a = split($2,b,""); for(i=1; i=a; i++){prin
我虽然这是一个简单的任务,但不是!

输入(管道分隔):

record1|ABCDEFGH
record2|IJKLMNOP

我需要这个输出:

record1|A|B|C|D|E|F|G|H
record2|I|J|K|L|M|N|O|P

到目前为止我尝试了什么:

awk 'BEGIN{FS=OFS="|"}{a = split($2,b,""); for(i=1; i<=a; i++){printf("%s|%s,$1,b[i](i==a? "n":"|"))}}' input

我得到:

record1|A
record1|B
record1|C
...

我不明白!如果有人能向我解释……

解决方法

你的printfs遍布整个商店.通过如下所示的修改,它按预期工作

awk 'BEGIN{FS=OFS="|"}{a = split($2,"");
   printf "%s|",$1; 
   for(i=1; i<=a; i++){printf("%s%s",b[i],i==a? "n":"|")}}' input

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读