背景
最近在做一些文本处理的时候代码出了 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@t