Один текстовый файл: сравнение первых n символов каждой строки и следующей. Если они равны, напечатайте более длинный из двух в выходной файл

Если вы не вносили никаких изменений, файл конфигурации еще не существует.

Простой способ изменить скин по умолчанию:

  1. Запустить Midnight Commander

    sudo mc
    
  2. F9 , O для опций или курсор на «Опции» и нажмите Enter

  3. A для Внешний вид или курсор на Внешний вид и нажмите Ввод

    Вы увидите, что по умолчанию используется текущий скин.

  4. Нажмите Введите , чтобы увидеть другие варианты скинов

  5. Наведите курсор на нужный скин и выберите его, нажав Enter

  6. Нажмите OK

После того, как вы это сделаете, файл ini будет существовать и его можно будет редактировать, но сменить скины проще описанным мной способом.

0
18.06.2019, 11:24
2 ответа
#!/bin/bash 

file_len=$(wc -l afile.txt | awk {'print $1'});
let "flen = $file_len-1";
nth=28;
for i in $(seq 1 $flen); do {
        li_cut="";
        ly_cut="";
        let "y = $i +1";
        line_i=$(sed -n "$i"p afile.txt);
        len_i=$(echo $line_i | wc -m)
        li_cut="${line_i:0:$nth}";
        line_y=$(sed -n "$y"p afile.txt);
        len_y=$(echo $line_y | wc -m)
        ly_cut="${line_y:0:$nth}";

        if [ "$li_cut" == "$ly_cut" ]; then {
                if [ $len_i -gt  $len_y ]; then {
                        echo "$line_i [ $len_i ];"
                } fi
                if [ $len_y -ge $len_i ]; then  {
                        echo "$line_y [ $len_y ]";
                } fi;
        } fi;
} done

что-то вроде этого? Не будет так хорошо с огромными текстами и, вероятно, может быть закодирован в более красивых формах.

Изменить :может быть полезно использовать sort|uniq в конце, учитывая, что :если строка n+1 > n и строка n+1 > n+2, вы получите «повторяющийся» n+1

0
28.01.2020, 03:35

Чтобы распечатать содержимое более длинного пути вместе с длиной этого пути:

awk -v n=28 '
  substr($0,1,n) == substr(last,1,n) {
    if(length($0) > length(last))
      printf("length: %d %s\n", length($0), $0);
    else
      printf("length: %d %s\n", length(last), last);
  }
  {last = $0}
' file
length: 53 C:\users\username\subfolder\thisismyfileplusadate.txt
0
28.01.2020, 03:35

Теги

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