KSH Чтение ввода из файла и запись в CSV в ОДНОЙ строке

Я не уверен, что понял все ваше эхо, но это может быть то, что вам нужно. Поместите именно то, что вы хотите, в файл mysqlsec_skript.sh внутри здесь строки , то есть многострочной строки, которая начинается в строке после «<< 'endoffileindicator'» и заканчивается непосредственно перед строкой, состоящей только из выбранного конечного индикатора. Я использовал одиночный символ "!" как конечный индикатор. Таким образом, команда cat читает все до строки с просто "!" (пробелы не допускаются) и копирует его в пункт назначения.

cat <<'!' > /root/mysqlsec_skript.sh
#!/bin/bash
FILE=/root/mysqlsecure
if [ -f $FILE ]
then
  echo "File $FILE exists, mysql is safe!"
else
  echo "File $FILE does not exists, secure mysql"
  mysqladmin -u root password 'secret' 
  mysql -u root -p'secret' -e "UPDATE mysql.user SET Password=PASSWORD('secret') WHERE User='root'" 
  mysql -u root -p'secret' -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1')" 
  mysql -u root -p'secret' -e "DELETE FROM mysql.user WHERE User=''" 
  mysql -u root -p'secret' -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\_%'" 
  mysql -u root -p'secret' -e "FLUSH PRIVILEGES"
  touch /root/mysqlsecure 
fi 
!
chmod +x /root/mysqlsec_skript.sh
0
15.02.2018, 13:28
1 ответ

Awksolución (sin shell loops y cadenas de tuberías):

awk 'BEGIN{ OFS=", "; print "Interface, In Errors, Out Errors" }
     /line protocol /{ ifc=$1 }
     /input errors/{ in_err=$1 }
     /output errors/{ print ifc, in_err, $1 }' "$DATAFILE/$rname.intfs"

La salida:

Interface, In Errors, Out Errors
GigabitEthernet0/0, 1, 275
GigabitEthernet0/1, 0, 42
0
28.01.2020, 04:30

Теги

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