bash脚本变量中的换行符

时间:2014-08-12 09:08:01

标签: bash variables unix newline

我有代码:

for file in *
    do
      list="$list""$file "`cat $file | wc -l | sort -k1`$'\n'
   done

echo $list

这会输出fileA 10 fileB 20 fileC 30等列表。

我认为应该输出:

fileA 10
fileB 20
fileC 30

我需要输出跟随后者,因为我想一次循环一行$list变量并执行操作。

有人可以帮助我吗?

谢谢。

2 个答案:

答案 0 :(得分:1)

它确实在变量中有换行符。当在引号之外使用变量时,它会将其拆分为由空格分隔的多个参数。

你想要的是echo "$list"

答案 1 :(得分:0)

你可以这样做:

 for file in *
  do
     count=$(cat "$file" | wc -l)
     list="$list$file $count\n"
  done

echo -e $list

-e     enable interpretation of backslash escapes