我想将ls -1
的结果加入到一行中,并用我想要的任何内容划分它。 函数
我能够使用任何标准的Linux命令来实现这一目标吗? spa
ls
链接到管道时产生一个列输出,所以-1
是多余的。 命令行
这是使用内置join
函数的另外一个perl答案,它不会留下尾随分隔符: code
ls | perl -F'\n' -0777 -anE 'say join ",", @F'
隐藏的-0777
使perl在运行程序以前读取全部输入。 ci
sed替代品,不留下尾随分隔符 字符串
ls | sed '$!s/$/,/' | tr -d '\n'
我以为这个很棒 awk
ls -1 | awk 'ORS=","'
ORS是“输出记录分隔符”,因此如今你的行将用逗号链接。 sed
此命令适用于PERL粉丝: perl
ls -1 | perl -l40pe0
这里40是空间的八进制ascii代码。 程序
-p将逐行处理并打印
-l将负责用咱们提供的ascii字符替换尾部\\ n。
-e是告知PERL咱们正在执行命令行。
0表示实际上没有执行命令。
perl -e0与perl -e'相同
不要从新发明轮子。
ls -m
它正是如此。
ls
有选项-m
用", "
逗号和空格分隔输出。
ls -m | tr -d ' ' | tr ',' ';'
将此结果传递给tr
以删除空格或逗号将容许您再次将结果传递给tr
以替换分隔符。
在个人例子我更换分隔符,
用分隔符;
替换;
使用您喜欢的任何一个字符分隔符 ,由于tr只会考虑您做为参数传入的字符串中的第一个字符。