相关疑难解决方法(0)

是否可以更改 glob 的顺序?

我试图通过执行以下操作,按时间顺序显示来自系统日志的特定消息的所有实例:

grep squiggle /var/log/messages*
Run Code Online (Sandbox Code Playgroud)

不幸的是,glob 模式首先匹配当前活动的文件。例如。

/var/log/messages
/var/log/messages-20120220
/var/log/messages-20120227
/var/log/messages-20120305
/var/log/messages-20120312
Run Code Online (Sandbox Code Playgroud)

这意味着最近的消息首先显示,然后按时间顺序显示历史消息。

是否可以以某种方式调整 glob 模式行为以使空匹配(即 just messages)显示在列表的末尾?

如果没有,解决这个问题的好方法是什么?

bash wildcards

14
推荐指数
2
解决办法
6298
查看次数

使用条件运算符时的排序顺序是什么?

我编写了一个 bash 脚本来处理文件名列表(使用 glob 扩展,如for f in *),然后将该列表的一个子集输出到文件中。随后,我将这个文件的内容读入一个数组,并使用明显的<>运算符来比较字符串,对特定文件名执行简单的二进制搜索。

考虑到我希望脚本能够在 Linux、MacOS、MinGW 等许多不同的环境中工作……(即使它使用诸如[[stat不太便携的东西),我的问题是:

  1. 我是否需要对文件内容进行排序(使用sort或额外的 bash 代码)或者 glob 扩展是否总是排序 - 在每个环境中?
  2. 条件运算符是否使用与扩展(或之后sort)相同的“排序” ?

    扩展或sort返回file10.txt之后file2.txt(在什么情况下?)但使用条件运算符file10.txt会在之前file2.txt?我sort会用什么选项来解决这个问题?

  3. 如果我的某些文件名是 Unicode,有什么注意事项吗?

  4. 使用特定版本的 bash 是否有任何问题?
  5. 是否LC_COLLATE影响上述任何一项?

我显然需要文件内容来匹配运算符的排序“方法”,以便二分搜索按预期工作......

bash shell-script sort wildcards

5
推荐指数
1
解决办法
880
查看次数

标签 统计

bash ×2

wildcards ×2

shell-script ×1

sort ×1