Как добавить строку в файл через CMD после указанной строки?

Было бы гораздо проще использовать пользовательские компараторы:

Сортировка по name:

Arrays.sort(carArray, Comparator.comparing(Car::name));

Сортировка по colour:

Arrays.sort(carArray, Comparator.comparing(Car::colour));

Итак, вы можете изменить getSortedArray():

public static Car[] getSortedArray(Car[] carArray, Comparator<Car> comparator) {
    Car[] sorted = carArray.clone()
    Arrays.sort(sorted, comparator);
    return sorted;
}

И называть его следующим образом:

Car[] sorted = getSortedArray(carArray, Comparator.comparing(Car::name));

Изменить:

Если вы используете языковая версия, которая не поддерживает эти функции, вы можете создавать компараторы, явно создавая вложенный класс, реализующий интерфейс Comparator.

Это, например, одноэлемент Comparator, который сравнивает Car экземплярами name:

static enum ByName implements Comparator<Car> {
    INSTANCE;

    @Override
    public int compare(Car c1, Car c2) {
        return c1.name().compareTo(c2.name());
    }
}

Затем вызывать:

Car[] sorted = getSortedArray(carArray, ByName.INSTANCE);
0
задан michael_heath 16 January 2019 в 12:30
поделиться

1 ответ

@echo off
setlocal

set "string=hostname2"
set "insert=192.168.128 hostname5"

for /f "tokens=1-2 delims= " %%A in (file.txt) do (
    echo %%A %%B
    if /i "%%~B" == "%find%" echo %insert%
) >> file.tmp

move /y file.tmp file.txt

Переменная string - это строка для поиска. Переменная insert - это новая строка для вставки после строки, которая соответствует значению string.

Цикл for разделяет каждую строку чтения пробелом на 2 токена. Первым токеном будет IP-адрес (который, кажется, пропускает октат).

Если значение string найдено во 2-м токене на текущей строке, то читается строка insert.

После завершения записи в file.tmp файл заменяет file.txt.

0
ответ дан michael_heath 16 January 2019 в 12:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: