Unix

在命令行上從 csv 文件中過濾帶有空格字元的欄位

  • December 3, 2015

具有多條記錄的 csv 文件由 . 分隔|

field1|field2|field3|field4|field5

我想檢查 field3 是否為空白或僅包含“空格”字元。如果它是空白或空格,則應顯示整行。

$ echo "1|2||4" | awk  -F'|' '$3 ~ /^[ \t]*$/   {print $0}'

1|2||4

$ echo "1|2|  |4" | awk  -F'|' '$3 ~ /^[ \t]*$/   {print $0}'

1|2|  |4

$ echo "1|2|  3|4" | awk  -F'|' '$3 ~ /^[ \t]*$/   {print $0}'

也可以使用 cut 命令拉出第三個欄位,然後測試值:

$ echo "field1|field2|field3|field4|field5" | cut -d '|' -f 3
field3

引用自:https://serverfault.com/questions/37988