Unix - 如何在一个单词上使用cut -d

And*_*idz 1 unix linux shell

我有一个包含两个单词的字符串,但有时它可能只包含一个单词,我需要得到两个单词,如果第二个单词为空,我想要一个空字符串.我使用以下内容:

STRING1=`echo $STRING|cut -d' ' -f1`
STRING2=`echo $STRING|cut -d' ' -f2`
Run Code Online (Sandbox Code Playgroud)

当STRING只有一个字时,两个字符串相等,但我需要第二个屏幕为空.

M.E*_*.L. 6

你的问题是(来自cut(1))

`-f FIELD-LIST'
`--fields=FIELD-LIST'
   Select for printing only the fields listed in FIELD-LIST.  Fields
   are separated by a TAB character by default.  Also print any line
   that contains no delimiter character, unless the
   `--only-delimited' (`-s') option is specified. 
Run Code Online (Sandbox Code Playgroud)

您可以在提取第二个单词时指定-s,或使用

echo " $STRING" | cut -d' ' -f3
Run Code Online (Sandbox Code Playgroud)

提取第二个单词(注意$ STRING前面的假分隔符).