这是一个csv文件items.txt

item-number,item-description,item-category,cost,quantity-available


我尝试使用,将字段分隔符从\n更改为awk,我需要一种简单的方法来实现。

1)此命令不起作用

awk -F, 'BEGIN{OFS="\n"} {print}' items.txt


2)此命令有效,但我需要处理的实际csv有15+列,我不想提供所有列变量

awk -F, 'BEGIN{OFS="\n"} {print $1,$2}' items.txt


提前致谢。

最佳答案

你近了将OFS设置为换行符后,您将需要重新构造字段以将它们分隔为换行符。

$1=$1重新计算字段,并用OFS分隔它们,默认情况下为空格。由于我们将OFS设置为RS(默认情况下为新行),因此您将获得所需的输出。

语句末尾的1是惯用语。

$ awk 'BEGIN{FS=",";OFS=RS}{$1=$1}1' file
item-number
item-description
item-category
cost
quantity-available

09-07 09:32