Поэтому, если я сохраню system_profile в текстовом документе, как я смогу удалить все разделы, кроме одного? Или удалить цитаты вокруг него? Тогда как мне назначить определенный текст переменной для проверки определенных вещей?

Пример: если я сохраню system_profile в текстовом документе, как мне выполнить поиск, чтобы узнать, сколько у меня оперативной памяти, и назначить это переменной 'ram'? Кроме того, я могу найти и удалить определенные символы? Например, есть сценарий удалить все кавычки?

2 ответа2

0

Вы можете искать слова в файле, используя grep.

Пример:

cat system_profile | grep ram

Это вернет строку в system_profile, которая содержит шаблон "ram". Вам, вероятно, нужно будет выполнить команду и посмотреть результат, прежде чем вы сможете понять, что делать дальше. Если вам нужна только часть файла, вы можете выполнить поиск и перенаправить вывод в новый файл.

Пример:

cat system_profile | grep ram -A 5 > system_ram

Это даст вам строку, содержащую "оперативную память" и пять строк после нее.

Вы можете заменить символы через утилиту sed.

Пример:

sed -i 's/old/new/g' system_profile

Чтобы исключить двойные кавычки ("):

sed -i 's/"//g' system_profile
0

Я не совсем уверен, как выбирать между разными случаями, но, надеюсь, это поможет.

x=$(cat system_profile | grep ram -A 5)

Приведенный выше код сохранит строку, содержащую оперативную память, и следующие 5 строк после нее. Для получения строк раньше используйте -a вместо -A .

Я предполагаю, что grep поддерживает выбор ограниченного числа строк (то есть остановка после первого появления ram памяти). Если это то, что вы ищете, используйте опцию -m 1 (где один - количество вхождений, которые нужно найти до остановки) для grep.

В качестве альтернативы, вы можете изменить свой поиск grep, если две (или более) выбранные строки не идентичны. Просто измените ram на то, что вам нужно, чтобы соответствовать (поместите его в кавычки, если это более одного слова)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .