如何在终端中合并或粘贴 Linux 命令中的文本?

如何在终端中合并或粘贴 Linux 命令中的文本?

如何在终端中合并或粘贴 Linux 命令中的文本?

我想执行以下 Linux 命令,ls -d $PWD/* 其结果是:例如。

/media/elias/2000_0101_004828_006.MP4
/media/elias/2000_0101_011328_007.MP4
/media/elias/2000_0101_013829_008.MP4
/media/elias/2000_0101_020328_009.MP4
/media/elias/2000_0101_021020_006.MP4
/media/elias/2000_0101_021620_006.MP4

我想要以如下方式执行 Linux 命令,产生的打印结果如下:

file '/media/elias/2000_0101_004828_006.MP4'
file '/media/elias/2000_0101_011328_007.MP4'
file '/media/elias/2000_0101_013829_008.MP4'
file '/media/elias/2000_0101_020328_009.MP4'
file '/media/elias/2000_0101_021020_006.MP4'
file '/media/elias/2000_0101_021620_006.MP4'

这是 ffmpeg concat 命令操作视频文件所需的 Videofiles.txt 所必需的。我想执行一个命令行来自动完成所有这些工作。linux 命令结果将保存在 txt 文件中,例如

   ls -d $PWD/* > videofiles.txt

那可能吗?

附言:我的 ls 命令按日期顺序列出文件?

答案1

该顺序不是由决定的,它取决于应用于您所在语言环境的shell globls的词汇排序顺序。LC_COLLATE*

也就是说,我会ls完全避免,并做一些类似的事情

printf "file '%s'\n" $PWD/* > videofiles.txt

(如果您只想匹配文件,则可以更改*为)。*.MP4.MP4


如果你希望文件按修改时间(又名“mtime”)排序,就像你使用 时那样ls -t,那么这在 bash 中是无法实现的,但在 zsh 中可以使用glob 限定符前任。

printf "file '%s'\n" $PWD/*.MP4(om)

按 mtime 升序排序(如ls -t)或

printf "file '%s'\n" $PWD/*.MP4(Om)

按 mtime 降序排序(如ls -tr)。

相关内容