每隔 n 个空格,将该空格替换为换行符

举报
iamwkp0001 发表于 2022/02/23 11:13:53 2022/02/23
【摘要】 背景最近在做一些文本处理的时候代码出了 BUG ,导致整个文件的换行符都变成了空格,需要在正确的位置将空格替换为换行符思路使用 awk 的 split 函数对字符串进行数组类型的分割,(类似于 python 中的 split 函数)然后每隔 n 个空格,就将第 1 2 3 … n-1 n 个元素输出awk 代码如下(n=8 需要每隔 8 个空格就将该空格替换为换行符):# n = 8 cat...
背景
最近在做一些文本处理的时候代码出了 BUG ,导致整个文件的换行符都变成了空格,需要在正确的位置将空格替换为换行符
思路
使用 awk 的 split 函数对字符串进行数组类型的分割,(类似于 python 中的 split 函数)然后每隔 n 个空格,就将第 1 2 3 … n-1 n 个元素输出
awk 代码如下(n=8 需要每隔 8 个空格就将该空格替换为换行符):
# n = 8 cat bbb.txt | awk '{len=split($0,a," ");for(i=1;i<=len;i=i+8) print a[i]"\t"a[i+1]"\t"a[i+2]"\t"a[i+3]"\t"a[i+4]"\t"a[i+5]"\t"a[i+6]"\t"a[i+7] }'
  • 1
  • 2
示例
[root@test]# cat bbb.txt a b c d e f g h aa bb cc dd ee ff gg hh aaa bbb ccc ddd eee fff ggg hhh [root@test]# cat bbb.txt | awk '{len=split($0,a," ");for(i=1;i<=len;i=i+8) print a[i]"\t"a[i+1]"\t"a[i+2]"\t"a[i+3]"\t"a[i+4]"\t"a[i+5]"\t"a[i+6]"\t"a[i+7] }' a b c d e f g h aa bb cc dd ee ff gg hh aaa bbb ccc ddd eee fff ggg hhh

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。