unix 查找结果的自定义分隔符

muf*_*fel 6 find

我想用来find查找一些文件,并将所有文件作为一行返回(没有换行符),并在文件之间使用自定义分隔符。

因此,例如三个文件的结果将是

/my/file/1::/my/file/2::/my/file/3
Run Code Online (Sandbox Code Playgroud)

代替

/my/file/1
/my/file/2
/my/file/3
Run Code Online (Sandbox Code Playgroud)

有没有办法结合使用标准的 unix 工具来实现这一点find

hee*_*ayl 10

您可以使用 :

find . -type f -printf '%p::' | sed 's/::$/\n/'
Run Code Online (Sandbox Code Playgroud)
  • -printf谓词find将被分隔一行打印文件名::,然后sed将取代过去的::以换行符。

例子 :

$ find . -type f -printf '%p\n'
./foo
./test
./bar

$ find . -type f -printf '%p::' | sed 's/::$/\n/'
./foo::./test::./bar
Run Code Online (Sandbox Code Playgroud)