У меня есть текстовый файл, подобный этому:
Some-text
Keyword
Some-text
Some-text
Keyword
Some-text
Keyword
Keyword
Я хочу заменить каждое «Ключевое слово» на «number.extension», где число равно 1 при совпадении первого ключевого слова, 2 при совпадении второго ключевого слова и т. д. .
Я знаю, что я должен использовать цикл bash в сочетании с sed (sed 's: Keyword: Number: g'), но я не уверен, как вставить переменную для числа в этой команде sed.
Поскольку это HTML-файл, между этими «ключевыми словами» могут быть пустые строки или любой текст.
Отредактировано: вы можете использовать переменную в sed следующим образом:
count=1
extension=".jpg"
cp yourfile tempfile
for (( i=1; i<=`wc yourfile | awk '{ print $1 }'`; i++))
do
#for (( j=1; j<=`sed -n ''"$i"' p' yourfile | wc | awk '{ print $2 }'`; j++))
#do
sed -i ''"$i"' s/[a-zA-Z0-9]*[Kk][Ee][Yy][Ww][Oo][Rr][Dd]/'"$count$extension"'/1' yourfile
diff yourfile tempfile
if [ $? -ne 0 ]
then
count=$(expr $count + 1)
cp yourfile tempfile
fi
#done
done