【发布时间】:2014-11-16 15:51:01
【问题描述】:
我正在尝试编写一个简单的脚本,它将用户指定的字段显示为 bash 参数。例如,我的文本文件如下所示:
1 2 3 4 5
1 2 3 4 5
a b c d e
例如用户类型:
./script.sh text 1 2 5
其中 $1 = 文本,其他参数(如 $2 $3 和 $4)是字段,因此输出将如下所示:
1 2 5
1 2 5
a b e
我有这段代码,它打印所有定义为参数的列,但在其他列之下:
#!/bin/bash
text="$1"
shift
for x in $@; do
awk '{print $var}' var="$x" $text
done
输出例如 ./script.sh text 1 2 5:
1
1
a
2
2
b
5
5
e
我猜输出看起来像这样,因为循环“for”在 AWK 之外。将循环放置在 AWK 中是否是一个很好的解决方案?我尝试了一些东西,但语法总是有问题。
感谢您的宝贵时间和帮助!
【问题讨论】:
标签: bash for-loop awk parameters arguments