Если вы создали новый файл с Vim, нажатие последовательности клавиш Esc -: - w-q-Enter сохранит файл в текущем месте, где вы запустили Vim. Например, если вы были в / home / $ USER, файл будет создан в этом каталоге. Самый простой способ - запустить vim, используя:
vim myFile.txt
Это создаст новый файл или перезапишет файл с именем myFile.txt в текущем местоположении.
Другая awk версия:
awk '/sCSISmart(12|20)\s+TRAP-TYPE/,/::=/ {print}' foo
/sCSISmart(12|20)\s+TRAP-TYPE/ соответствует sCSISmart12 TRAP-TYPE и sCSISmart20 TRAP-TYPE указывает, что вам нужно Выход [ ! d7]
sCSISmart20 TRAP-TYPE
ENTERPRISE cyclone
DESCRIPTION
"Aspi: unable to read the file server hard disk might have problems"
--#TYPE "Aspi: unable to read the database file"
--#SUMMARY "ASPI: unable to read the file, server hard disk may have problems"
--#ARGUMENTS {}
--#SEVERITY WARNING
--#TIMEINDEX 100
--#STATE OPERATIONAL
--#HELP "scsismrt.hlp"
--#HELPTAG 124
::= 124
sCSISmart12 TRAP-TYPE
ENTERPRISE cyclone
VARIABLES {cycHostAdapterNumber, cycScsiTargetID, cycLun, cycVendor, cycProduct, cycSenseInfo}
DESCRIPTION
"The HostAdapter# %d, TargetID %d, Lun# %d has Predictive Failure Condition on vendor %s product %s with sense info MSB(sense code), next 8 bits (sense code Qual) next 8 bits (Add sense code Qual) LSB (0000) %d"
--#TYPE "Device has SMART/Predicictive failure event"
--#SUMMARY "The HostAdapter# %d , TargetID %d, Lun# %d has Predictive Failure Condition on vendor %s product %s with senseinfo %d"
--#ARGUMENTS {0,1,2,3,4,5}
--#SEVERITY INFORMATIONAL
--#TIMEINDEX 100
--#STATE OPERATIONAL
--#HELP "scsismrt.hlp"
--#HELPTAG 116
::= 116
Нижеприведенный сценарий использует файл как аргумент командной строки и выводит все строки только после того, как встречается первая строка ::=.
#!/bin/bash
main(){
local flag=false
while IFS= read -r line;
do
case "$line" in
*"::="*) flag=true && continue ;;
esac
$flag && echo "$line"
done < "$1"
}
main "$@"
Тестирование (согласуется с желаемым выходом OP):
$ ./remove_paragraph.sh input.txt
sCSISmart21 TRAP-TYPE
ENTERPRISE cyclone
DESCRIPTION
"Aspi: database is corrupted"
--#TYPE "Aspi: database is corrupted"
--#SUMMARY "ASPI: database file is corrupted"
--#ARGUMENTS {}
--#SEVERITY WARNING
--#TIMEINDEX 100
--#STATE OPERATIONAL
--#HELP "scsismrt.hlp"
--#HELPTAG 125
sCSISmart12 TRAP-TYPE
ENTERPRISE cyclone
VARIABLES {cycHostAdapterNumber, cycScsiTargetID, cycLun, cycVendor, cycProduct, cycSenseInfo}
DESCRIPTION
"The HostAdapter# %d, TargetID %d, Lun# %d has Predictive Failure Condition on vendor %s product %s with sense info MSB(sense code), next 8 bits (sense code Qual) next 8 bits (Add sense code Qual) LSB (0000) %d"
--#TYPE "Device has SMART/Predicictive failure event"
--#SUMMARY "The HostAdapter# %d , TargetID %d, Lun# %d has Predictive Failure Condition on vendor %s product %s with senseinfo %d"
--#ARGUMENTS {0,1,2,3,4,5}
--#SEVERITY INFORMATIONAL
--#TIMEINDEX 100
--#STATE OPERATIONAL
--#HELP "scsismrt.hlp"
--#HELPTAG 116