我在Linux中使用bash腳本。我有一個變量,看起來像這樣:使用Bash腳本在一行中分隔列
a="1-1-1 1-1-2 1-1-3 1-1-4"
我想使用AWK分隔值等於或大於1-1-3的列。
我的輸出應該是:
1-1-3 1-1-4
有人可以幫助我?
我在Linux中使用bash腳本。我有一個變量,看起來像這樣:使用Bash腳本在一行中分隔列
a="1-1-1 1-1-2 1-1-3 1-1-4"
我想使用AWK分隔值等於或大於1-1-3的列。
我的輸出應該是:
1-1-3 1-1-4
有人可以幫助我?
你可以不用一個循環,如果你使用的空間記錄分隔符:
echo $a | awk -v RS=' ' -v ORS=' ' '{$1=$1} $1>="1-1-3"'
您可以遍歷所有的線和比較:
echo $a | awk -v ORS=' ' '{for(i=1;i<=NF;i++) if($i >= "1-1-3") print $i;}'
非常感謝您的幫助。作品。 – user3891747
排序的-V
選項可以讓你「版本「排序可能會有幫助:
$ 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
你如何定義」大於「?那麼'a =「2-1-1 1-1-2 1-1-3 1-1-4」'? –
我想起初,第一列應該比較二到三,就你的例子來說,輸出將是2-1-1 1-1-3 1-1-4。如果我們的數據是單列,我可以使用echo「$ a | awk'($ 0> = 1-1-3){print $ 0}'...但現在我在一行輸入 – user3891747