背景
最近在做一些文本处理的时候代码出了 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] }'
示例
[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

本文介绍了如何用awk处理文本,当遇到连续的空格时,每隔n个空格将其替换为换行符。通过split函数分割字符串并利用数组,实现文本的正确格式化。
最低0.47元/天 解锁文章
3110

被折叠的 条评论
为什么被折叠?



