У меня есть программа Java, которая объединяет два текстовых файла. Итак, у меня есть файл1.txt и файл2.txt и все записи из файла1.txt объединены с файлом2.txt НА файл2.txt. После объединения файл file2.txt сортируется по номерам. Однако файл file2.txt имеет заголовок, и мне нужно найти способ игнорировать этот заголовок (не удалять, игнорировать!) при объединении файлов, потому что после сортировки он путается с записями.
Пожалуйста, помогите мне найти способ игнорировать первую строку файла file2.txt.
Вот код:
public static void sortRecords(String fileName, String overflow) {
String s = null;
String main_file = fileName;
String overflow_file = overflow;
String command = "sort -nk1 " + fileName + " -o " + fileName;
try {
//cat
Process merge = new ProcessBuilder("/bin/bash", "-c", "cat " + overflow_file + " >> " + main_file).start();
//sort
Process sort = Runtime.getRuntime().exec(command);
} catch (IOException e) {
}
}
Пример:
файл1.txt
2 ABC
3 ABC
file2.txt (изначально пустой, кроме заголовка)
ID Name
file2.txt (после объединения и сортировки)
ID Name
2 ABC
3 ABC
После объединения я очищаю файл file1.txt. Когда пользователь добавляет записи, они сначала сохраняются в файле file1.txt, а после определенного количества записей они объединяются с файлом file2.txt. Итак, проблема возникает при добавлении записей (кроме первого раза). Они как-то путаются, примерно так:
файл2.txt
3 ABC
ID NAME
1 ABC
2 ABC
file1.txt
,file2.txt
и ожидаемого результата? - person acm   schedule 12.09.2016sort -nk1
для вашегоfile2.txt
я получаю ожидаемый результат с заголовком сверху, если в вашем файле нет пустых строк. Это имеет смысл, поскольку порядок числовых значений, когда строка не является числом, рассматривается как нуль: Строки другой формы обрабатываются как нулевые. Я протестировал его, используяGNU bash, version 4.3.46
иsort (GNU coreutils) 8.25
. - person acm   schedule 12.09.2016