Редактирование файла на основе внешнего вида шаблона

Возник конфликт с ядром сервера mongodb --Попробуйте

sudo apt-get purge mongod*
sudo apt-get update

и повторно -установите

1
21.11.2020, 22:35
1 ответ

Назовем входной файл "sample.txt"

Сначала нам нужно поместить 0 и -1 биты в файл:

cat sample.txt | sed 's/, \[s/, 0, \[s/g' | sed 's/, \[t/, -1, \[t/g' > sample1.txt

Получив новый файл «sample1.txt», мы можем запустить следующий скрипт bash (convert.bash ).

#!/bin/bash

k=0
maxstates=$(wc -l "$1" | gawk '{print $1}')

for i in $(seq 1 "$maxstates")
do
    count=$(grep -c "s($i,a)" "$1")
    if [ "$count" -ne 0 ]
    then
        k=$((k + 1))
        sed -i "s/s($i,a)/p($k)/g" "$1"
    fi
    count=$(grep -c "s($i,b)" "$1")
    if [ "$count" -ne 0 ]
    then
        k=$((k + 1))
        sed -i "s/s($i,b)/p($k)/g" "$1"
    fi
done

Теперь, чтобы запустить файл:

bash convert.bash sample1.txt

Он редактирует файл sample1.txt на месте, и новое содержимое:

state(1, p(1), 0, [p(2)]).
state(1, p(2), 0, [p(1)]).
state(1, p(3), 0, [p(4)]).
state(1, p(4), 0, [p(3)]).
state(1, p(5), 0, [p(6)]).
state(1, p(6), 0, [p(5)]).
state(1, p(7), -1, [t(1), t(2)]).
state(1, p(8), -1, [t(1), t(3)]).
state(1, p(9), 0, [p(10)]).
state(1, p(10), 0, [p(9)]).
2
18.03.2021, 22:48

Теги

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