我有一个空格分隔的file.txt,列数为n。 file.txt中的第三列是用逗号定界的,我想根据列(n = 3)中的计数数目,通过用每个值分割逗号定界的列,在同一file.txt中创建重复记录。
--file.txt
我有0、1、2、3个苹果
我有2,3根香蕉
我有3个橘子
--desiredoutput.txt
我有0个苹果
我有一个苹果
我有两个苹果
我有三个苹果
我有两个香蕉
我有三个香蕉
我有3个橘子
最佳答案
Awk
解决方案:
awk '$3~/,/{
split($3, a, ","); f=$1 OFS $2; sub(/^[^ ]+ +[^ ]+ +[^ ]+/,"");
for (i in a) print f,a[i] $0; next
}1' file
输出:
I have 0 apples
I have 1 apples
I have 2 apples
I have 3 apples
I have 2 bananas
I have 3 bananas
I have 3 oranges
关于linux - UNIX中的文件操作-根据一列的计数创建重复记录,仅处理一个列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47762410/