使用Bash脚本在一行中分隔列

时间:2016-01-23 08:26:26

标签: bash awk

我在Linux中使用bash脚本。我有一个看起来像这样的变量:

a="1-1-1 1-1-2 1-1-3 1-1-4"

我想使用AWK将值等于或大于1-1-3的列分开。

我的输出应该是:

1-1-3 1-1-4

有人可以帮我这个吗?

3 个答案:

答案 0 :(得分:1)

你可以循环上线并比较:

echo $a | awk -v ORS=' ' '{for(i=1;i<=NF;i++) if($i >= "1-1-3") print $i;}'

答案 1 :(得分:1)

如果您使用空格作为记录分隔符,则可以在没有循环的情况下执行此操作:

echo $a | awk -v RS=' ' -v ORS=' ' '{$1=$1} $1>="1-1-3"'

答案 2 :(得分:1)

排序-V选项为您提供&#34;版本&#34;排序可能会有所帮助:

$ a="2-0-0 1-1-1 1-1-2 1-1-3 1-1-4"
$ tr ' ' '\n' <<<"$a" | sort -V
1-1-1
1-1-2
1-1-3
1-1-4
2-0-0