需要一些帮助。
我有两个文件,
file1.txt >
5555555555
1111111111
7777777777
file2.txt >
0000000000
8888888888
2222222222
4444444444
3333333333
我跑的时候
$ sort -m file1.txt file2.txt > file-c.txt
输出文件-c.txt在file1和file2中合并,但它没有排序。
file-c.txt >
0000000000
5555555555
1111111111
7777777777
8888888888
2222222222
4444444444
3333333333
当它发生时我需要一个错误,说文件(file1和file2)没有排序,并且合并在排序之前不能合并文件。因此,当我运行$ sort -m file1.txt file2.txt > file-c.txt
时,我必须得到一个错误,说它无法将file1和file2合并到file-c,因为它们尚未排序。
希望你们了解我:D
答案 0 :(得分:0)
如果我理解你在问什么,你可以这样做:
DIFF1=$(diff <(cat file1.txt) <(sort file1.txt))
DIFF2=$(diff <(cat file2.txt) <(sort file2.txt))
if [ "$DIFF1" != "" ]; then
echo 'file1 is not sorted'
elif [ "$DIFF2" != "" ]; then
echo 'file2 is not sorted'
else
sort -m file1.txt file2.txt
fi
这适用于Bash(以及其他shell)并执行以下操作:
这是你在找什么?
编辑:或者如果您的排序版本支持@twalberg,您可以这样做:
if ! sort -c file1.txt
then echo 'file1 is not sorted'
elif ! sort -c file2.txt
then echo 'file2 is not sorted'
else
sort -m file1.txt file2.txt
fi