我有一个空格分隔的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/

10-09 08:35