Вы можете использовать сценарий bash под названием bu
. Поместите этот код в файл bu
:
#!/bin/bash
cp "$1" /root/backup
и затем сохраните его в $PATH
или добавьте каталог, в который вы поместили файл, в $PATH
. Наконец, сделайте скрипт исполняемым: chmod +x bu
.
Согласно объяснению в комментариях:
sed "
# for lines which starts with if
/^if\b/{
/==/! {
# add logic statement to first alphanums after (
s/\((\w\+\)/\1 == 1b'1 /
# add logic statement to second alphanums after & if it is present
s/\(&\!\?(\?\w\+\)/\1 == 1b'1 /
# if ! sign in section replace 1 by 0 at the end of statement
s/\!(\([^']*'\)1 )/ \10 /g
}
}
" file
Другой вариант - удалить все, кроме части, которая будет изменен, измените его, чем построите полную строку:
sed "/^if\b/{
/==/!{
h
s/if (.*) //
x
s/if (\(.*\)) (.*/\1/
s/\w\+/& == 1'b1 /g
s/!(\(.*\)1 )/ \10/g
s/.*/if (&)/
G
s/\n/ /
}
}" file
Может быть, что-то вроде:
perl -0777 -pe 's{\bif\s*\K\((([^()]++|\((?1)\))*)(?=\))}{
$& =~ s{([&(])\s*(!?)\s*\(?(\w+\b)\)?(?!\s*(==|'\''))}{
"$1$3 == 1'\''b".(0+!!$2)}gers}ges'