我有一堆从log1
到log164
.
我正在尝试在 UNIX 终端中列出目录(已排序),但排序功能仅提供如下格式:
home:logs Home$ ls -1 | sort
log1.gz
log10.gz
log100.gz
log101.gz
log102.gz
log103.gz
log104.gz
log105.gz
log106.gz
...etc
Run Code Online (Sandbox Code Playgroud)
我想要的是
home:logs Home$ ls -1 | sort
log1.gz
log2.gz
log3.gz
log4.gz
log5.gz
log6.gz
log7.gz
...{more here}
log99.gz
log100.gz
log101.gz
log102.gz
...etc
Run Code Online (Sandbox Code Playgroud)
我可以用来做什么的任何建议?
是major, minor
唯一的编号?
我们有任何引用和参考吗?
NAME MAJ:MIN RM SIZE RO MOUNTPOINT
sda 8:0 0 465.8G 0
??sda1 8:1 0 298.2M 0
??sda2 8:2 0 3G 0
??sda3 8:3 0 458.7G 0 /
??sda4 8:4 0 1K 0
??sda5 8:5 0 3.8G 0
sr0 11:0 1 1024M 0
Run Code Online (Sandbox Code Playgroud) 我有一个进退两难的问题.. 我有一个脚本一段时间了,它每隔几分钟就从网络摄像头下载图片。命名约定就是这样new_image((len(files(dir))+1) + '.jpg')
,一切都很好......直到今天......
我有一个 Python 脚本,它根据创建日期加载图像并渲染它们,然后我将 OpenGL 数据转储到电影中,这并不难,而且一切正常.. 除了现在我有几千个图像并且以这种方式继续下去是非常无效的(即使它很酷,因为我可以构建自己的 GUI 和覆盖等)..无论如何,我正在使用 ffmpeg 将图像组合成幻灯片,如下所示:
ffmpeg -f image2 -r 25 -pattern_type glob -i '*.jpg' -qscale 3 -s 1920x1080 -c:v wmv1 video.wmv
ffmpeg 工作正常,除了-pattern_type glob
按命名顺序获取图像这不起作用,因为文件获取的方式与 相似,如果不相同ls
,看起来像:
user@host:/storage/photos$ ls
0.jpg 1362.jpg 1724.jpg 2086.jpg 2448.jpg 280.jpg 3171.jpg 3533.jpg 3896.jpg 4257.jpg 4619.jpg 4981.jpg 5342.jpg 5704.jpg 6066.jpg 650.jpg
1000.jpg 1363.jpg 1725.jpg 2087.jpg 2449.jpg 2810.jpg 3172.jpg 3534.jpg 3897.jpg 4258.jpg 461.jpg 4982.jpg 5343.jpg 5705.jpg 6067.jpg 651.jpg
Run Code Online (Sandbox Code Playgroud)
0, 1000, 1, 2000, …
在我们的服务器上,cronjob 记录了共享目录中的文件计数。日志格式如下:
2003-07-03T16:05 279
2003-07-03T16:10 283
2003-07-03T16:15 282
Run Code Online (Sandbox Code Playgroud)
到目前为止,该文件已超过一百万个条目。我有兴趣找到我们有史以来最大的变化(消极和积极)。我可以编写一个程序来找到它,但是有没有一些工具可以给我一个增量列表?
原始文件在 Solaris 上,但我的 Linux Mint 系统上有该文件的副本。
我知道我已经问过这个问题,但我没有得到有效的答案。所以请问有人可以回答我的问题吗?
我有一个文本文件,其中包含文本段落,每个文本段落由一个空行分隔。现在我需要用自己的编号为每个段落编号。所以第一段的边距中会有数字 1,第二段的边距中会有数字 2,第三段的边距中会有数字 3,依此类推。我知道这似乎很明显,但我认为我的最后一篇文章可能没有清楚地传达信息。
所以我需要一个 Linux 命令来完成这项工作。但是,我的问题是命令需要简单。我的意思是没有复杂的 Perl 脚本,也没有任何难以理解的代码块。
我正在寻找的是一个可以轻松执行任务的简单命令。或者,如果需要编写脚本,请使其简单并解释代码,以便从未使用过 Perl 或 Bash 脚本的人仍然可以将其应用于他们的代码并了解他们在做什么。
对不起,如果这个问题可能被认为是不礼貌的。回复将不胜感激,因为网络上没有关于此主题的内容。
我通常这样做
$ wc questions
33 36 3105 questions
$ seq 1 33 > nums
$ paste nums questions
1 Content
2 ...
.
.
33 End Content
Run Code Online (Sandbox Code Playgroud)
但我觉得可以有更快的方法来做到这一点,没有看起来很糟糕的虚拟文件。如何使用一些基本的 *ix -tool?有什么更简单的方法吗?我使用 Vim,所以我对基于 Vim 的解决方案也很满意,但简单的基于 unix 的解决方案也有效(实际上在某些情况下可能更好,我总是可以在编辑器中生成)。
下面是一般情况。
输入
A
B
C
.
.
X
Run Code Online (Sandbox Code Playgroud)
输出
1. A
2. B
3. C
.
.
N. X
Run Code Online (Sandbox Code Playgroud) 我需要传递给 pdftk,一个由重复两次的字符串构成的参数列表,例如:
A1-2 B1-2 A3-4 B3-4 A5-6 B5-6...
等等...
我设法通过此解决方法实现了这一目标
for ((x=1, y=2;x>=18, y<=18;x++, y++)); do echo "A$x-$y B$x-$y "; done| awk 'NR %2==1 {print $1, $2} ' | tr '\n' ' '
Run Code Online (Sandbox Code Playgroud)
这给出了:
A1-2 B1-2 A3-4 B3-4 A5-6 B5-6 A7-8 B7-8 A9-10 B9-10 A11-12 B11-12 A13-14 B13-14 A15-16 B15-16 A17- 18 B17-18
但我不满意,我正在寻找一种合适、更优雅、更好的方式来执行这项任务
这可以按降序对文件行进行编号吗?
那将是这样的:
nl -i -1
Run Code Online (Sandbox Code Playgroud)
不幸的是,这给了我:
nl: invalid line number increment: ‘-1’: Numerical result out of range
Run Code Online (Sandbox Code Playgroud)
我知道它在管道重定向中没有意义,因为nl
无法猜测总行数,但是如果我将文件作为参数传递,它应该很容易 - 即使它需要两次传递才能完成任务。
如果不是nl
,也许是其他一些命令。