【发布时间】:2017-12-29 19:44:57
【问题描述】:
我正在尝试在名为 example7 的 Bash 中编写程序脚本 它接受作为参数:一个文件名(我们称之为文件 1)和一个列表 数字(下面我们将其称为列表 1),程序需要做的是打印输出的列 通过列表 1 中的数字将它们重新安排到右侧或左侧后的文件 1。(这可以通过使用 awk 的 printf 命令获得)。
例子
假设一个 F1 文件的内容是:
A abcd ddd eee zz tt
ab gggwe 12 88 iii jjj
yaara yyzz 12abcd xyz x y z
通过命令运行程序后:
example7 F1 -8 -7 6 4
输出:
A abcd ddd eee
ab gggwe 12 88
yaara yyzz 12abcd xyz
在上面的例子中A和ABCD之间有7个空格,在abcd和ddd之间
ddd 和 eee 之间有 6 个空格
有一个空格。
另一个例子:
通过命令运行程序后:
example7 F1 -8 -7 6 4 5
输出:
A abcd ddd eee zz
ab gggwe 12 88 iii
yaara yyzz 12abcd xyz x
在上面的例子中A和ABCD之间有7个空格,在abcd和ddd之间
ddd 和 eee 之间有 6 个空格
eee 和 zz 之间有 1 个空格 88 和 iii 之间有 3 个空格
有两个空格,在xyz和x之间有4个空格。
我尝试过这样做:
file=$1
shift
awk '{printf "%'$1's\n" ,$1}' $file
但它只适用于一个数字和一个参数,我不知道如何为多个列和多个参数做到这一点.. 任何帮助将不胜感激。
【问题讨论】: