如果我有一个字符串变量,它的值是"john is 17 years old",我如何使用空格作为delimeter来标记它?我会用awk吗?

推荐答案

使用shell自动标记未加引号的变量:

$ string="john is 17 years old"
$ for word in $string; do echo "$word"; done
john
is
17
years
old

如果要更改分隔符,可以设置$IFS变量,它代表内部字段分隔符.默认值$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命令造成严重 destruct .)

Linux相关问答推荐

在Linix&;Mac中运行Reaction本机项目时出现问题

Linux 中大型 TSV 的条件编辑

我需要从 Ubuntu 中删除 .txt 文件中以白色间距分隔的行的白色间距

如何使用适用于 Linux 的 Dockerized SQL Server 设置 MSDTC

使用 awk 将多行文本转换为 CSV

awk/sed 命令仅在模式 2 匹配时打印模式 1

PHP factor 30 从 Linux 到 Windows 的性能差异

从 .war 文件外部化 Tomcat webapp 配置

仅在不存在时添加换行符

你如何在 C 中的 Linux 上进行非阻塞控制台 I/O?

yum 可以告诉我哪些存储库提供了特定的包吗?

如何在没有 IDE 的情况下构建和部署三星 SmartTV 应用程序(例如:在 Linux 上)

rm 没有释放磁盘空间

如何将文件夹中的文件列表发送到Linux中的txt文件

如何自动化 HTML 到 PDF 的转换?

grep 递归查找 Linux 上的特定文件类型

UNIX `time` 命令对于基准测试是否足够准确?

在Linux中使用空格设置环境变量

如何自动启动 Solr?

如何限制堆大小?