我想在bash脚本中使用带有字符串的sed,而不必读取或写入任何文件。我google了,我找不到任何东西
具体来说,我试图通过以下方式获取给定目录中的文件数量:
RAW=$(ls $DIRNAME | wc)
# RAW --> ? sed ? --> answer
答案 0 :(得分:3)
不是sed
,但这个问题更好。
ls | wc -l
通常,sed
将字符串作为输入。例如,
ls | sed 's/\./Period replaced by sed/g'
答案 1 :(得分:1)
answer=$(echo $RAW|sed <YOURSTUFF>)
答案 2 :(得分:1)
您可以使用ls
和wc
执行此操作。
\ls | wc -l
答案 3 :(得分:1)
你可以写:
ls -1R | wc -l
要将计数存储在变量中,您可以编写如下内容:
#!/bin/sh
total=`ls -1R | wc -l` # stores the count in $total
echo $total # prints the count
答案 4 :(得分:1)
对于包含换行符的文件,所有ls ... | wc ...
解决方案都将失败。只有当目录为空时才会失败:
set -- *
printf "%d\n" "$#"
或者如果您想要包含点(隐藏)文件:
set -- .* *
printf "%d\n" "$#"
那将包括。和...,如果那是不可取的(可能是),则减去2
答案 5 :(得分:1)
使用wc的解决方案,如果名称中包含新行的文件,也可以使用
find . -maxdepth 1 -mindepth 1 -print0 | tr -dc '\0' | wc -c