Проверка нескольких строк и вывод пропущенных строк. (Bash)
Так что в основном у меня есть файл, для понимания того, как написать это, это выглядит так.
Start:
First line of text
Second line of text
Bin:
Third line of text
Four line of text
Что мне нужно сделать, это написать скрипт, который проверяет эти строки и выводит все пропущенные строки.
Исходя из моих предположений, я предположил бы, что это будет включать в себя awk или grep, который будет проверять, есть ли каждая строка, и набор операторов if, которые говорят, что если этого не существует, то выводят, какой строки не существует.
Любые указатели о том, как начать это? Вот то, что я до сих пор пробовал с этим маленьким psuedocode-ish. `
str1=$(awk '/Start:/' /some/file)
str2=$(awk '/First line of text/' /some/file)
str3=$(awk '/Second line of text/' /some/file)
if $str1 == '' then
print $str1 'does not exist'
elif $str2 == '' then
print $str2 'does not exist'
else $str3 == '' then
print $str3 'does not exist'
fi` `
1 ответ
Примерно так должно напечатать недостающие строки с помощью AWK:
BEGIN {
a[i++]="Start:"
a[i++]="First line of text"
a[i++]="Second line of text"
}
// {
for (s in a) {
if (match($0,a[s]) ) { a[s]="" }
}
}
END {
for (s in a) {
if (a[s] != "") { print a[s] }
}
}