如果我有一个字符串变量,谁的值是"john is 17 years old"如何使用空格作为分隔符来对此进行标记?我会用awk吗?
"john is 17 years old"
awk
使用外壳程序对未加引号的变量的自动标记化:
$ string="john is 17 years old" $ for word in $string; do echo "$word"; done john is 17 years old
如果要更改定界符,则可以设置$IFS变量,该变量代表内部字段分隔符。的默认值$IFS是" \t\n"(空格,制表,换行)。
$IFS
" \t\n"
$ string="john_is_17_years_old" $ (IFS='_'; for word in $string; do echo "$word"; done) john is 17 years old
(请注意,在第二个示例中,我在第二行周围添加了括号。这创建了一个子shell,因此对的更改$IFS不会持续。您通常不想永久更改,$IFS因为它可能会对毫无疑问的shell命令造成严重破坏。 )