Fortran,
Я хотел бы сделать это немного по-другому, я бы не сортировать файл в себя. Просто добавьте что-либо новое в файлы после сортировки. вот что я хотел бы сделать:
- mirrior реж дерево, которое имеет файл «output.txt» и поместить отсортированный файл там
как так:
#!/bin/bash
LIST=`find $1 -name output.txt`
for i in $LIST ; do
X=`dirname $i`
mkdir -p "sorted/$X"
sort "$i" -o "sorted/$i"
done
выше нужно немного польский, mkdir должен иметь «если» вокруг него и 1 доллар должен быть проверен на предмет здравомыслия
дает вам следующее:
оригинальная:
mytest
mytest/ccc
mytest/ccc/f
mytest/ccc/f/output.txt
mytest/ccc/d
mytest/ccc/d/output.txt
mytest/ccc/e
mytest/ccc/e/output.txt
mytest/bbb
mytest/bbb/f
mytest/bbb/d
mytest/bbb/e
mytest/aaa
mytest/aaa/f
mytest/aaa/f/output.txt
mytest/aaa/d
mytest/aaa/d/output.txt
mytest/aaa/e
mytest/aaa/e/output.txt
Выход:
sorted
sorted/mytest
sorted/mytest/ccc
sorted/mytest/ccc/f
sorted/mytest/ccc/f/output.txt
sorted/mytest/ccc/d
sorted/mytest/ccc/d/output.txt
sorted/mytest/ccc/e
sorted/mytest/ccc/e/output.txt
sorted/mytest/aaa
sorted/mytest/aaa/f
sorted/mytest/aaa/f/output.txt
sorted/mytest/aaa/d
sorted/mytest/aaa/d/output.txt
sorted/mytest/aaa/e
sorted/mytest/aaa/e/output.txt
одна последняя вещь, которую я считаю, что выход сортировать файл прописан в файле TMP, а затем переименован, когда-то будет сделано, в противном случае выходной файл может укоротить входной файл перед тем, как все будет прочитано. Как опция sed inplace.
Похоже, что он работает (займет некоторое время, поэтому не может быть уверен). Я мог бы поклясться, что попробовал нечто похожее на это (разве это не всегда так?) В любом случае ты качаешься. –
Можете ли вы действительно использовать сортировку для использования того же выходного файла, что и входной файл? Я сомневаюсь в этом. – lothar
@lothar, что бы вы ни сомневались в этом или нет, он все равно будет работать: -p программа сортировки считывает весь файл, сортирует строки в памяти и затем записывает вывод – fortran