UNIX中的文件操作 - 根据列中的计数创建重复记录,并仅操作一列

时间:2017-12-11 22:21:07

标签: linux shell unix awk

我有一个空格分隔的file.txt,有n列。 file.txt中的第3列是逗号分隔的,我想通过将逗号分隔的列与每个值分开,根据列(n = 3)中的计数数在同一个file.txt中创建重复记录。

- file.txt的

我有0,1,2,3个苹果

我有2,3个香蕉

我有3个橘子

- desiredoutput.txt

我有0个苹果

我有1个苹果

我有2个苹果

我有3个苹果

我有2个香蕉

我有3个香蕉

我有3个橘子

1 个答案:

答案 0 :(得分:0)

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

输出:

shrink_to_fit