我有一个创建文件并在其中写入内容的脚本。
我必须在同一个脚本中包含哪些说明,以便该文件中的行按字母顺序排序?
让我更明确一点,这是我的代码:
nr=0
while read line;
do
for fisier in `find $1 -type f`
do
counter=0
for word in $(<$fisier)
do
file=`basename "$fisier"`
length=`expr length $word`
echo "$length"
if [ $length -gt $n ];
then counter=$(($counter+1))
fi
done
if [ $counter -gt $nr ];
then echo "$file" >> $destinatie
fi
done
break
done
我应该在哪里放置| sort
命令?
答案 0 :(得分:1)
只需通过sort
输出您的输出。如果您只有一个创建输出的命令,则可以使用如下子shell:
(
# cmd 1
# cmd 2
) | sort > outfile
使用像编辑问题一样的while循环,我建议您在done
关键字之后添加:
while condition
do
# ...
done | sort >> "$destinatie"
请注意,您还必须删除循环内的重定向>> $destinatie
,并将调试输出回显给stderr:
>&2 echo "$length"
另外,因为您要使用>>
进行追加,如果您在启动时没有rm $destinatie
(我记得您按照another question中的说明执行了操作),那么整个文件将< em> not 在终止后进行排序,而不是每次运行期间添加的行都将被排序。
使用sort
了解有关man sort
选项的详情。
答案 1 :(得分:0)
您可以使用sort
Unix命令:
function_generating_lines | sort > output_file.txt