linux - Unix - 如何对一个词使用 cut -d

标签 linux shell unix

我有一个包含两个单词的字符串,但有时它可能只包含一个单词,我需要获取两个单词,如果第二个单词为空,我需要一个空字符串。 我正在使用以下内容:

STRING1=`echo $STRING|cut -d' ' -f1`
STRING2=`echo $STRING|cut -d' ' -f2`

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

最佳答案

你的问题是(来自 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. 

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

echo " $STRING" | cut -d' ' -f3

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

关于linux - Unix - 如何对一个词使用 cut -d,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18620193/

相关文章:

linux - 如何使用文本文件中的 shell 脚本将多个字符串替换为多个值

python - 您可以导出创建的 python conda 环境供其他人在他们的机器上激活吗?

windows - Vim:Mac 与 Linux ^M 问题

bash - 过滤床文件中的重叠条目

bash - 删除从文件中捕获的元素

日历时间存储为带符号的 32 位整数 - 何时溢出

c - fork() 怎么可能返回两个值?

linux - execve后,前一个进程addr中的内存是否被释放?

linux - 如何将环境变量设置为Oracle主位置?

bash - 在另一个脚本中获取最后一个 shell 命令的退出代码