Как выполнять поиск в определенном диапазоне позиций на линии

Вы просто не можете сделать это без предварительной загрузки и сделать раздел предпочтительным во время установки. изменение размера раздела может быть разрешено некоторыми сторонними программами, но это может нанести вред вашему жесткому диску компьютера. или если вы присоединитесь к двум разделам или разделитесь на два раздела, возможно, ваш системный файл будет поврежден, и вы не сможете просматривать окна или ubuntu. вы не можете использовать менеджер разделов kde и kvpm, это будет avilable в программном центре ubuntu. или в случае окон вы можете использовать много сторонних программ avilable

1
задан 2 March 2017 в 03:25

1 ответ

Bash позволяет извлекать подстроки определенной переменной. Все, что вам нужно сделать, это прочитать файл по строкам внутри структуры while IFS= read -r:

#!/bin/bash
while IFS= read -r line;
do
    if [[ ${line:5:12} =~ "$1" ]];
    then
        echo "$line"
    fi
done < "$2"

Обратите внимание на синтаксис: в ${var:5:12} 5 начинается исходная позиция, а 12 смещается, поэтому в этом случае он ищет от позиции 5 до 17. Если вам нужно рассчитать отложенное на основании ввода пользователя, вы можете использовать арифметику bash для определения off-set как end=$((12-5)) и использовать эту переменную в выражении подстроки, например ${var:5:$end}

Тестирование:

$ ./search_substrings.sh "6314" input.txt                                                                                
commA6314   ifosfamide               30     12  

Обратите внимание, что это позволяет избежать использования внешних инструментов, таких как grep, которые соответствуют требованиям, хотя имейте в виду, что это не очень практичное решение, и в реальном мире вы, d скорее используйте Perl или awk

2
ответ дан 23 May 2018 в 01:00

Другие вопросы по тегам:

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