我想使用AWK(Windows)将一个文本文件从一列转换为多列-在脚本或命令行中指定的计数。
此问题has been asked before,但我的最终数据文件需要始终具有相同的列数。
输入示例:
L1
L2
L3
L4
L5
L6
L7
分为3列和“;“作为分隔符
L1;L2;L3
L4;L5;L6
L7;; <<< here two empty fields are created after end of file, since I used just one on this line.
我试图修改给出的典型解决方案的变体:NR%4 {printf $0",";next} 1;
和一个计数器,但不能完全正确。
我不希望在此之前计算行数,因为这样会多次遍历文件。
3条答案
按热度按时间elcex8rz1#
您可以使用以下
awk
解决方案:e0bqpujr2#
使用您展示的示例,请尝试以下
awk
代码。使用xargs
+awk
组合来实现OP所需的结果。iih3973s3#
对于
awk
,我会:或者,另一个
awk
:如果您需要更多选项,也可以使用
ruby
:或者,要知道
paste
就是为此设计的:(Use对于所需的每一列为
-
)以下任何一种打印(带有
n=3
):(And对于
n
的其他值也能正常工作...)