"cola","colb","colc","cold","cole","colf" "a","b","c","d","e","f" "a1","b1","c1","d1","e1","f1" "a2","b2","c2","d2","e2","f2"
假設這是CSV文件,我想grep
從列"cole"
值"e"
並將其存儲到一個shell變量。然後使用shell變量作爲wget
命令的一部分。grep的從CSV特定列的最近值文件
我該怎麼做?
"cola","colb","colc","cold","cole","colf" "a","b","c","d","e","f" "a1","b1","c1","d1","e1","f1" "a2","b2","c2","d2","e2","f2"
假設這是CSV文件,我想grep
從列"cole"
值"e"
並將其存儲到一個shell變量。然後使用shell變量作爲wget
命令的一部分。grep的從CSV特定列的最近值文件
我該怎麼做?
set -f # disable globbing
variable="$(awk 'NR==2 {print $5}' file)"
set +f
這是使用第7和第8列之間的打印行,分隔符似乎是關閉的。如果我刪除不需要的列,則打印$ 1/$ 2 ...等等,然後在變量上返回一個空值。 –
這裏是設置-f輸出 $ $ 變量= 「$(AWK 'NR == 2 {打印$ 5}' a.csv)」 $設置+ F $回聲$變量 $變量=「$ (awk'NR == 2 {print $ 4}'a.csv)「 $ echo $ variable $ variable =」$(awk'NR == 2 {print $ 3}'a.csv)「 $ echo $變量 $ variable =「$(awk'NR == 2 {print $ 1}'a.csv)」 $ echo $ variable 這只是打印空白 –
awk非常適合這個。如果你知道列號,你可以簡單地做:
$ awk 'NR==2{print $5}' file.csv
e
這將打印第二行的第五個字段。如果要使用列名稱,則:
$ awk 'NR==1{for(i=1;i<=NF;i++)c[$i]=i}NR==2{print $c[col]}' col="cole" file.csv
e
只需設置col="<name of column to use>"
。
您可以使用命令替換存儲在變量中的值:
$ val="$(awk 'NR==2{print $5}' file.csv)"
$ wget --what-ever-option "$val"
或者只是用它來代替:
$ wget --what-ever-option "$(awk 'NR==2{print $5}' file.csv)"
是第一行(可樂COLB COLC冷科爾colf)屬於你csv文件? – Cyrus
第一行是列名並且是csv文件的一部分 –
已將其更改爲最新值,並且以上是Excel中的表示形式,它確實是一個csv文件。 –