有没有办法控制ls输出格式

Sai*_*akR 4 output ls execute-command

我有一个目录,其中包含一些 svg 图像。我使用以下命令列出它们ls以将输出保存在文件中:

ls *200px.svg > animList.js
Run Code Online (Sandbox Code Playgroud)

输出文件如下所示:

file1-200px.svg
file2-200px.svg
file3-200px.svg
...
fileX-200px.svg
Run Code Online (Sandbox Code Playgroud)

我需要编写文件名,以便'fileX-200px.svg',轻松地使该文件列表像 JavaScript 数组一样工作。即我需要输出文件为:

'file1-200px.svg',
'file2-200px.svg',
'file3-200px.svg',
...
'fileX-200px.svg',
Run Code Online (Sandbox Code Playgroud)

所以最后我只需要在var arr = [文件开头添加类似的内容,然后];在文件末尾添加即可作为 JavaScript 数组使用。Linux中有没有办法控制ls命令的输出显示?

ste*_*ver 6

尽管您可以ls在某种程度上改变输出的格式,例如

LC_CTYPE=C ls --quoting-style=locale *200px.svg
Run Code Online (Sandbox Code Playgroud)

对于单引号(请参阅info coreutils ls 'formatting the file names'详细信息),只需将 glob 的结果传递给 shell 的函数会更简单printf

printf "'%s',\n" *200px.svg
Run Code Online (Sandbox Code Playgroud)

  • @SaidbakR 我认为更有可能*打印格式* (4认同)
  • @SaidbakR 它不会搜索... shell glob 字符“*”由 shell 扩展为匹配的文件名,然后传递给“printf”,后者仅格式化和打印它所看到的内容。 (3认同)