У меня есть файл под названием temp1
sCellEventTrap-03-27 TRAP-TYPE -- CAC Code: 01 ENTERPRISE compaq VARIABLES { scellNameDateTime, scellSWComponent, scellECode, scellCAC, scellEIP} DESCRIPTION "Severity: Critical -- failure or failure imminent. A physical disk drive has experienced an ID block inconsistency." --#TYPE "StorageCell Event" --#SUMMARY "SCellName-TimeDate %s : SWCID %d : ECode: %d : CAC %d : EIP %d." --#ARGUMENTS {0,1,2,3,4,} --#SEVERITY CRITICAL --#TIMEINDEX 136 --#STATE WARNING ::= 13600807Применение этого к temp1
prvar = $ (awk '/ VARIABLES /, / ОПИСАНИЕ / {gsub ("ПЕРЕМЕННЫЕ", ""); gsub ("ОПИСАНИЕ", ""); gsub ("}", ""); gsub ("{", ""); gsub (",", ""); print; print ":% s "} 'temp1)Дает мне (что я хочу)
echo $prvar scellNameDateTime :%s scellSWComponent :%s scellECode :%s scellCAC :%s scellEIP :%s :%sОднако это (формат не нужен)
echo "$prvar" scellNameDateTime :%s scellSWComponent :%s scellECode :%s scellCAC :%s scellEIP :%s :%sЯ использовать prvar в echo вместе с текстом, подобным этому
prvar = $ (awk '/ VARIABLES /, / ОПИСАНИЕ / {gsub ("VARIABLES", ""); gsub ( "ОПИСАНИЕ", ""); gsub ("}", ""); gsub ("{", ""); gsub (",", ""); print; print ":% s"} 'temp1)
echo "blah blah blah $ prvar"
blah blah blah scellNameDateTime :%s scellSWComponent :%s scellECode :%s scellCAC :%s scellEIP :%s :%sВыполнение этого, что я получаю
blah blah blah scellNameDateTime :%s scellSWComponent :%s scellECode :%s scellCAC :%s scellEIP :%s :%sЧто я хочу, чтобы он печатал
"" на prvar при использовании echo создает проблему. Что я могу сделать, чтобы prvar был напечатан в формате, который был выше?
Вам не нужно цитировать («) все в эхо. У вас может быть много строк. Просто не цитируйте prvar:
echo "blah blah blah" $prvar
В оболочке (которая расширяет $ prvar для вас до эха даже видит это), пробелы внутри кавычек (") сохраняются, но пробелы и табуляции вне кавычек сводятся к одному пространству. например
echo "a b" d e
a b d e