Linux awk脚本 - 将管道分隔为固定宽度

时间:2015-09-15 21:10:44

标签: linux awk

我正在尝试将管道分隔的输入文件转换为固定宽度的文件。下面是输入文件和预期输出。我还包括了我正在尝试的脚本。我尝试了几种变化而没有成功。我是Linux的新手,并且一直试图拼凑一些代码以帮助我更好地理解,但我失败了,希望有人能够帮助我。

awk -v FS =" |" FIELDWIDTHS =" 9 1 2 1 2 2 5 5 7 10 9 11" -v OFS ="" ' {打印$ 1,$ 2,$ 3,$ 4,$ 5,$ 6,$ 7,$ 8,$ 9,$ 10,$ 11}' input.txt> output.txt的

$ cat input.txt
# Input File
#
aa|bbb|cccc|ddddd|
#


 $ cat output.txt
 # Output File
 #
 aabbbccccdddddd
 #

1 个答案:

答案 0 :(得分:1)

你不需要awk,即使你这样做也与FIELDWIDTHS没有任何关系,也无法想象你从哪里得到任何东西。您所需要的只是$ cat input.txt # Input File # aa|bbb|cccc|ddddd| # $ tr -d '|' < input.txt # Input File # aabbbccccddddd #

margin: 0px 10px 0px 25px;

要开始学习如何使用shell和awk,请获取Chris Johnson撰写的“Shell Scripting Recipes”和Arnold Robbins撰写的“Effective Awk Programming”,第4版。

相关问题