Принятие Вас может позволить себе сохранить столько же сколько дедуплицированный файл в памяти (если Ваши данные действительно дублированы фактором 100, который должен составить приблизительно 20 МиБ + наверху), можно сделать это очень легко с Perl.
$ perl -ne 'print unless $dup{$_}++;' input_file > output_file
Это сохраняет порядок также.
Вы могли извлечь количество случаев каждой строки от %dup
хешируйте, если Вы так желали как добавленная свободная премия.
Если Вы предпочитаете awk
, это должно сделать это также (та же логика как версия жемчуга, то же упорядочивание, те же данные, собранные в dup
переменная):
$ awk '{if (++dup[$0] == 1) print $0;}' input_file > output_file
grep "^[^#;]" smb.conf
Первое ^
относится к началу строки, так строки с комментариями, запускающимися после того, как первый символ не будет исключен. [^#;]
средства любой символ, который не является #
или ;
.
Другими словами, это сообщает о строках, которые запускаются с любого символа кроме #
и ;
. Это не то же как создание отчетов о строках, которые не запускаются с #
и ;
(для которого Вы использовали бы grep -v '^[#;]'
) в этом это также исключает пустые строки, но это, вероятно, предпочтительно в этом случае, поскольку я сомневаюсь, что Вы заботитесь о пустых строках.
Если бы Вы хотели проигнорировать символы начального пробела, то Вы могли бы изменить его на:
grep '^[[:blank:]]*[^[:blank:]#;]' smb.conf
или
grep -vxE '[[:blank:]]*([#;].*)?' smb.conf
Или
awk '$1 ~ /^[^;#]/' smb.conf
grep -v "^\s*[#;]" any.conf | grep -v "^\s*$"
Это то, что работает для меня. Игнорировать прокомментированные или пустые строки, даже пробелы перед хеш-следкой или запятой
Эти примеры могут быть полезны людям.
[user@host tmp]$ cat whitespacetest
# Line 1 is a comment with hash symbol as first char
# Line 2 is a comment with hash symbol as second char
# Line 3 is a comment with hash symbol as third char
# Line 4 is a comment with tab first, then hash
; Line 5 is a comment with tab first, then semicolon. Comment char is ;
; Line 6 is a comment with semicolon symbol as first char
[user@host tmp]$
Первый пример grep исключает строки, начинающиеся с любого количества пробелов, за которыми следует символ решетки.
[user@host tmp]$ grep -v '^[[:space:]]*#' whitespacetest
; Line 5 is a comment with tab first, then semicolon. Comment char is ;
; Line 6 is a comment with semicolon symbol as first char
[user@host tmp]$
Второй исключает строки, начинающиеся с любого количества пробелов, за которыми следует символ решетки или точка с запятой.
[user@host tmp]$ grep -v '^[[:space:]]*[#;]' whitespacetest
[user@host tmp]$
Трубка к grep в ответе Оливера Наджа может быть устранена (при использовании GNU grep
или совместимого):
grep -v "^\s*[#\;]\|^\s*$" <some_conf_file>
решение Vim:
:v/^\s*[#\n]/p
Я наткнулся на этот вопрос, когда пытался сам найти решение vim.
grep -v '^$\|^\s*#' temp
Этот намного лучше, я получил его из https://stackoverflow.com/questions/17392869/how-to-print-a-file-excluding-comments-and-blank-lines-using-grep-sed
Предполагается, что GNU grep
или совместимый.
Вот вариант получше (при условии, что GNU grep
или совместимый):
grep -v '^[#;/%<]\|^\s*$' anyfile.conf
исключить для строк, начинающихся с # ; /% <
, заключенные в квадратные скобки, а второй фильтр после вертикальной черты - \ s * $
для пустых строк.
egrep -v "^#|^$" anyfile.txt
Эта команда собирает всю информацию в файле, кроме комментариев и пустых строк.
Это должно показать вам файл без тех строк, которые начинаются с#
:grep -v "^#" filename
cat /etc/samba/smb.conf | grep ^[^#\;]
Но так или иначе спасибо – denys 11.01.2013, 22:09cat ...|
синтаксис!..2 Для того, чтобы хлестать пустые строки И строки, содержащие только, располагают с интервалами, возможно, с комментариями, Вы могли использовать это:grep -v "^ *\(#.*\|\)$" < smb.conf
– F. Hauri 11.01.2013, 22:14cat file | grep "blah"
implie выполнение двух двоичных файлов через FIFO, в то время какgrep "blah" <file
сделайте точно то же и свяжитеfile
естественно к grep'sSTDIN
. [удар], которого бесполезная кошка является полнофункциональным предметом, перерывает любую поисковую систему!-> blog.sanctum.geek.nz/useless-use-of-cat... для образца – F. Hauri 12.01.2013, 00:01