№
Сценарии содержимого выполняются в специальной среде, называемой изолированным миром. Они имеют доступ к DOM страницы, в которую они внедрены, но не к каким-либо переменным или функциям JavaScript, созданным этой страницей. Каждый скрипт содержимого выглядит так, как будто на странице, на которой он запущен, нет другого JavaScript-кода. То же самое верно и в обратном: JavaScript, работающий на странице, не может вызывать какие-либо функции или обращаться к любым переменным, определенным скриптами содержимого.
Изолированные миры позволяют каждому скрипту контента вносить изменения в свою среду JavaScript, не беспокоясь о конфликте со страницей или другими скриптами контента. Например, сценарий контента может включать JQuery v1, а страница может включать JQuery v2, и они не будут конфликтовать друг с другом.
Другим важным преимуществом изолированных миров является то, что они полностью отделяют JavaScript на странице от JavaScript в расширениях. Это позволяет нам предлагать дополнительные функции сценариям содержимого, которые не должны быть доступны с веб-страниц, не беспокоясь о доступе к ним веб-страниц.
Для систем, производных от BSD (включая GNU):
Вам просто нужно cat
с параметром -s
, который заставляет его удалять повторяющиеся пустые строки из вывода:
cat -s
Из справочной страницы: -s --squeeze-blank: подавлять повторяющиеся пустые выходные строки.
Конвейерная передача его в | uniq может быть решением (если строки, отличные от пустых, не дублируются)
grep -A1 . <yourfile> | grep -v "^--$"
Это решение grep работает, если вам нужно следующее:
Вход
line1
line2
line3
line4
line5
Выход
line1
line2
line3
line4
line5
На самом деле, если вы замените несколько символов новой строки одной новой строкой, вы получите следующий результат:
something
something else
something else again
Вы можете добиться этого следующим образом:
sed /^$/d FILE
Решение с awk
, которое заменяет несколько пустых строк одной пустой строкой:
awk 'BEGIN{bl=0}/^$/{bl++;if(bl==1)print;else next}/^..*$/{bl=0;print}' myfile
Используйте python:
s = file("filename.txt").read()
while "\n\n\n" in s: s = s.replace("\n\n\n", "\n\n")
import sys
sys.stdout.write(s)
Обычно, если я обнаруживаю, что sed не может сделать то, что мне нужно, я обращаюсь к awk:
awk '
BEGIN {
blank = 0;
}
/^[[:blank:]]*$/ {
if (!blank) {
print;
}
blank = 1;
next;
}
{
print;
blank = 0;
}' file
Очень просто сделать с vim. Просто откройте файл и введите следующее:
:%s/\n\n\n*/\r\r/
Это сократит все блоки из более чем 2 новых строк до 2 новых строк. Надеюсь, это поможет!
Я так понимаю, вы, вероятно, захотите удалить строки, в которых есть только пробелы.
Это можно сделать с помощью:
sed /^[:space:]*$/d FILE