如果是目录追加文本

时间:2014-12-29 13:48:47

标签: bash bash4

我试图附加一个文本,如果它是一个目录。

calculation="$(ls -l | sed 's/[d]/This is a directory -> /')"

printf "%s" "${calculation}"

我只是想知道是否有人可以给我一个关于我的代码错误的提示

1 个答案:

答案 0 :(得分:2)

不确定你在做什么,但是:

$ calculation="$(ls -l | sed 's/^[d]/This is a directory -> d/')"

两个变化:

  • 我添加了一个^,表示该行必须以方括号中的一个字符开头(d是唯一的一个)。
  • 我在替换的末尾添加了d,因为你用你的字符串替换了。这样,您的目录仍具有正确的权限。

您不需要[d]。只需d即可:

$ calculation="$(ls -l | sed 's/^d/This is a directory -> d/')"

你不需要${calculation}

$ echo "$calculation"

或者,如果您想使用printf

$ printf "%s\n" "$calculation"   # Note the ending NL which printf doesn't supply

甚至更简单:

$ printf "$calculation\n"