如何在不使用 AWK、sed 或循环的情况下获取列中每个单词的长度?

26 浏览
0 Comments

如何在不使用 AWK、sed 或循环的情况下获取列中每个单词的长度?

可行吗?我目前有一个一行代码来统计文件中单词的数量。如果输出我目前的代码,它看起来像这样:

3 abcdef
3 abcd
3 fec
2 abc

这一切都在一行中完成,没有循环,我在想是否可以在一列中添加每个单词的长度。我在想是否可以使用wc -m来计算字符数,但我不知道是否可以在没有循环的情况下实现这一点?

正如标题所示,不使用AWK,sed,perl等,只使用好老的bash。

我想要的结果是:

3 abcdef 6
3 abcd 4
3 fec 3
2 abc 3

其中最后一列是每个单词的长度。

0
0 Comments

这个问题的出现是因为作者想要在一个列中获取每个单词的长度,但不能使用AWK、sed或循环来解决。在上述内容中,给出了一个使用循环的解决方法,通过读取文件中的每一行,并使用printf函数来打印出每个单词的长度。

然而,有人认为这个解决方法不够优雅,提供了一个更加简洁的解决方法。他们建议使用awk命令来实现这个目标。通过使用awk的length函数,可以直接获取每个单词的长度。这种方法比使用循环更快速。

然而,还有人指出,如果输入中包含空格,那么使用awk命令的解决方法就会出现问题。例如,对于输入"1 hello world",使用awk命令的结果将是"1 hello 5",而不是正确的"1 hello world 11"。但是,如果需要实现这种行为,可以很容易地修复这个问题。

为了解决这个问题,可以使用循环来逐行读取文件,并使用printf函数来打印出每个单词的长度。另一种更优雅的解决方法是使用awk命令的length函数来获取单词的长度。然而,如果输入中包含空格,使用awk命令的解决方法就会出现问题,但可以通过修复来实现正确的行为。

0
0 Comments

在这篇文章中,我们将讨论如何在不使用AWK、sed或循环的情况下获取列中每个单词的长度。

问题的原因是,我们想要在给定的文件中的特定列中获取每个单词的长度,而不使用AWK、sed或循环这些常见的方法。我们希望能够找到一种更简单、更有效的解决方案。

为了解决这个问题,我们可以使用Bash脚本来实现。首先,我们需要创建一个包含要处理的数据的文件。在这个例子中,我们创建了一个名为test.txt的文件,其中包含了一些示例数据。

然后,我们可以编写一个Bash脚本来处理这个文件。在这个脚本中,我们使用了一个循环来逐行读取文件,并将每行拆分成单词。然后,我们可以使用Bash的字符串长度函数来获取每个单词的长度。最后,我们将单词和它们的长度打印出来。

执行脚本后,我们可以看到输出结果,它包含了每个单词和它们的长度。这个结果与我们的预期一致,证明了我们的解决方案是有效的。

总结起来,我们可以使用Bash脚本来获取列中每个单词的长度,而不使用AWK、sed或循环这些常见的方法。这个解决方案简单而有效,可以帮助我们处理类似的问题。

0