Spa*_*nST 3 linux shell string
假设我有一个如下的文本文件
abcd
aaaaaaa
gfgk
hahahahahahhahh
gf
Run Code Online (Sandbox Code Playgroud)
然后gf
会被退回。有什么好主意吗?
Bkk*_*rad 10
Awk 非常适合这个:
awk '(NR == 1 || length < length(shortest)) { shortest = $0 } END { print shortest }'
Run Code Online (Sandbox Code Playgroud)
第一部分将“最短”变量设置为当前行,如果它是第一行或者长度比之前看到的最短行短。最后,最后一部分打印出shortest 的值。
假设您的每一行都包含一个字符的“单词”,
并且我们不介意让 shell 做更多的工作,
这是一个 AWK 解决方案。
# 让你的文本在`str.txt` awk '{print length($1), $1}' str.txt | 排序 -nk 1 | 头-1 # 输出:2 gf ## 最短的字符串
您可以优化它以避免使用更多 AWK 进行排序。
如果每行有多个“单词”,则可以进一步调整。
另请注意,如果您有多个最短的字符串,这将为您提供其中之一。
你也可以做一些更多的技巧来获得它们。