我有代码:
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
变量并执行操作。
有人可以帮助我吗?
谢谢。
答案 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