如何在字符串上使用sed?

时间:2013-08-09 22:35:30

标签: bash awk

我想在bash脚本中使用带有字符串的sed,而不必读取或写入任何文件。我google了,我找不到任何东西

具体来说,我试图通过以下方式获取给定目录中的文件数量:

RAW=$(ls $DIRNAME | wc)
# RAW --> ? sed ? --> answer

6 个答案:

答案 0 :(得分:3)

不是sed,但这个问题更好。

ls | wc -l

通常,sed将字符串作为输入。例如,

ls | sed 's/\./Period replaced by sed/g'

答案 1 :(得分:1)

answer=$(echo $RAW|sed <YOURSTUFF>)

答案 2 :(得分:1)

您可以使用lswc执行此操作。

\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