Отображение и редактирование строк, соответствующих определенному шаблону в vi

#!/bin/bash

if [ ! -d "$1" ]; then
    printf 'Not a directory: %s\n' "$1" >&2
    exit 1
fi

find "$1" -type f -name "*.fastq" -print

Это небольшой скрипт, который просто перечисляет файлы fastq в заданном каталоге.

Если вы хотите выполнить команду для каждого файла, самым простым способом было бы изменить findна

find "$1" -type f -name "*.fastq" -exec utility {} ';'

Где utility— это некоторая программа, которая использует путь fastq в командной строке ({}будет заменено на путь к файлу fastq).

1
21.02.2017, 01:09
2 ответа

Вы должны использовать replace в vim для замены определенного совпадения.

В этом случае используйте этот петтернский матч.

:%s/<matching_pattern>/<replace_string>/g

Это сопоставит все элементы в файле с указанной заменяющей строкой.

0
28.01.2020, 01:00

Думаю, вам понадобится что-то вроде этого:

: let i = 1 | g / ^ AAA [0-9] \ + / s // \ = 'AAA'.i / | let i = i + 1

Вы можете прочитать о «Заменить возрастающими числами»

0
28.01.2020, 01:00

Теги

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