Tcsh

如何拆分和訪問以冒號分隔的欄位?

  • July 19, 2019

這段程式碼:

foreach line (`cat /etc/group`)
   echo $line
end

返回line包含由 . 分隔的 4 個欄位:

如何拆分欄位並訪問每個欄位的第一個欄位line

foreach line ("`cat /etc/group`")
   set fs = ($line:gas/:/ /)
   set f = ($fs)
   echo "$f[1]"
end

tcsh你可以省略中間fs變數,直接set f = ($line:gas/:/ /).

變數修飾符將用(是一個簡單的文本,不辨識正則表達式) 替換變數中的:s/pat/rpl/每個出現。標誌告訴替換所有出現,並且標誌在所有單詞中進行替換。pat``rpl``pat``a``g

如果使用原始文件csh並且/etc/group文件包含 glob 元字元,則必須將循環括在set noglob/unset noglob對中。

引用自:https://unix.stackexchange.com/questions/530516