user358527 Asked: 2019-07-17 11:53:11 +0800 CST2019-07-17 11:53:11 +0800 CST 2019-07-17 11:53:11 +0800 CST 如何拆分和访问以冒号分隔的字段? 772 这段代码: foreach line (`cat /etc/group`) echo $line end 返回line包含由 . 分隔的 4 个字段:。 如何拆分字段并访问每个字段的第一个字段line? csh tcsh 2 个回答 Voted Chuck Horowitz 2019-07-17T12:06:27+08:002019-07-17T12:06:27+08:00 将 awk 与-F标志一起使用。您必须像这样使用 echo 和管道进入 awk: for line in `cat /etc/group` do col1=$(echo $line | awk -F':' '{print $1}') col2=$(echo $line | awk -F':' '{print $2}') # Then you can use col1, col2, etc... echo "column 1 = $col1" echo "column 2 = $col2" done Best Answer mosvy 2019-07-17T13:50:59+08:002019-07-17T13:50:59+08:00 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/每个出现。标志告诉替换所有出现,并且标志在所有单词中进行替换。patrplpatag 如果使用原始文件csh并且/etc/group文件包含 glob 元字符,则必须将循环括在set noglob/unset noglob对中。
将 awk 与
-F
标志一起使用。您必须像这样使用 echo 和管道进入 awk:在
tcsh
你可以省略中间fs
变量,直接set f = ($line:gas/:/ /)
.变量修饰符将用(是一个简单的文本,不识别正则表达式) 替换变量中的
:s/pat/rpl/
每个出现。标志告诉替换所有出现,并且标志在所有单词中进行替换。pat
rpl
pat
a
g
如果使用原始文件
csh
并且/etc/group
文件包含 glob 元字符,则必须将循环括在set noglob
/unset noglob
对中。