заменить строку переменной в файле с помощью скрипта bash

Вы можете искать по жанру. Чтобы найти весь ваш Thrash Metal, введите genre:Thrash в поле поиска banshee. То же самое работает и для других полей.

1
задан 13 February 2016 в 20:33

2 ответа

Использование Perl:

perl -pe 's/\bweb\K[0-9]+\b/$&+1/ge' file

Чтобы отредактировать файл, добавьте параметр -i:

perl -i -pe 's/\bweb\K[0-9]+\b/$&+1/ge' file
-p: заставляет Perl принимать следующие цикл вокруг вашей программы, что заставляет его перебирать аргументы файла как несколько: sed:
   LINE:
     while (<>) {
         ...             # your program goes here
     } continue {
         print or die "-p destination: $!\n";
     }
-e: может использоваться для ввода одной строки программы. s/\bweb\K[0-9]+\b/$&+1/ge: соответствует любой строке web, предшествующей границе слова, отбрасывает совпадение и соответствует одной или нескольким цифрам, за которыми следует граница слова, заменяя совпадение эквивалентным числом, увеличенным на 1.
% cat file
project web0
project web1
project web2
% perl -pe 's/\bweb\K[0-9]+\b/$&+1/ge' file
project web1
project web2
project web3
3
ответ дан 23 May 2018 в 13:33

Спасибо, ребята, я пробовал этот код, и это сработало для меня,

#!/bin/bash
DPATH="/root/test.txt"
k=$(grep 'web' $DPATH | awk '{print $2}')      # web ends by a number#
i=$(grep 'web' $DPATH | awk '{print $2}'| cut -c3)
m=$((i+1))
n="web$m"
sed -i -e 's/'"$k"'/'"$n"'/g' $DPATH
1
ответ дан 23 May 2018 в 13:33

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

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