chcon -R -t httpd_sys_content_t <Your_Document_Root_Dir>
Должно сработать
Единственная модификация, которую я считаю необходимой, заключается в том, что у вас есть оператор print
в разделе END
, но отсутствует один для строк, не соответствующих -. Вместо этого вам следует
awk -F';' -v OFS=';' -v acc='bla' -v newpw='etewtw' '$1 == acc {$2=newpw}1' file.csv
т.е. просто заменить поле Nr. 2 с новым паролем, и в общем случае напечатайте (возможно измененную )строку (сокращенное обозначение для которой1
). При этом мне также удалось изменить запись в последней строке.
Кроме того, было бы разумно сделать ваше условие точным соответствием вместо регулярного выражения, вы никогда не знаете, может ли одно имя учетной записи содержать строку, совпадающую с именем другой учетной записи (, как в admin
и webadmin
, например ).
Любой из них необходим, чтобы ваше имя и пароль обрабатывались как буквальные строки:
acc='bla' newpw='etewtw' awk '
BEGIN{FS=OFS=";"; acc=ENVIRON["acc"]; newpw=ENVIRON["newpw"]}
$1 == acc{$2=newpw} 1
' file.csv
awk '
BEGIN{FS=OFS=";"; acc=ARGV[1]; newpw=ARGV[2]; ARGV[1]=ARGV[2]=""}
$1 == acc{$2=newpw} 1
' 'bla' 'etewtw' file.csv
Этот подход необходим вам, потому что переменные, переданные с помощью -v
, расширяют escape-последовательности. Итак, если какая-либо из переменных, которые вы передаете, содержит обратную косую черту, например foo\tbar
, то \t
в середине будет развернута и обработана как буквальный символ табуляции.
Для получения дополнительной информации см.http://cfajohnson.com/shell/cus-faq-2.html#Q24и/или https://stackoverflow.com/questions/19075671/how-do-i-use-shell-variables-in-an-awk-script.