如何将ls -1的结果加入到一行中,并用我想要的任何内容将其分隔?
当前回答
就bash
mystring=$(printf "%s|" *)
echo ${mystring%|}
其他回答
不要白费力气。
ls -m
它就是这么做的。
类似于第一个选项,但省略了后面的分隔符
ls -1 | paste -sd "," -
用换行符替换最后一个逗号:
ls -1 | tr '\n' ',' | sed 's/,$/\n/'
Ls -m包含屏幕宽度字符处的换行符(例如第80行)。
主要是Bash(只有ls是外部的):
saveIFS=$IFS; IFS=$'\n'
files=($(ls -1))
IFS=,
list=${files[*]}
IFS=$saveIFS
在Bash 4中使用readarray(又名mapfile):
readarray -t files < <(ls -1)
saveIFS=$IFS
IFS=,
list=${files[*]}
IFS=$saveIFS
感谢gniourf_gniourf的建议。
sed -e :a -e '/$/N; s/\n/\\n/; ta' [filename]
解释:
-e -表示要执行的命令 :a -为标签 /$/N -定义当前和(N)下一行的匹配范围 s / \ n / \ \ n /;-将所有EOL替换为\n 助教;-如果匹配成功,则标记a
摘自我的博客。
一般不建议解析ls,所以另一种更好的方法是使用find,例如:
find . -type f -print0 | tr '\0' ','
或者使用find和粘贴:
find . -type f | paste -d, -s
对于一般的多行连接(与文件系统无关),请检查:Unix命令行上简明而可移植的“join”。
推荐文章
- 如何在Typescript中解析JSON字符串
- 如何从查找“类型d”中排除此/ current / dot文件夹
- 检查bash变量是否等于0
- 如何分割逗号分隔的字符串?
- Java字符串—查看字符串是否只包含数字而不包含字母
- 在tmux中保持窗口名称固定
- 用javascript检查输入字符串中是否包含数字
- 只使用md5sum获取哈希值(没有文件名)
- 如何生成一个核心转储在Linux上的分段错误?
- 在Python中如何在Linux和Windows中使用“/”(目录分隔符)?
- 使用sh shell比较字符串
- Java:检查enum是否包含给定的字符串?
- 用PHP删除字符串的前4个字符
- 在Bash中测试非零长度字符串:[-n "$var"]或["$var"]
- 如何从字符串的开始或结束删除所有空白?