У меня есть файл со многими тысячами (возможно, даже миллионами) строк, однако мне нужно, чтобы все содержимое было в одной строке, и все пробелы были удалены (там не должно быть пробелов, но они могут быть, и если они есть, их следует удалить). Как этого достичь?
Чтобы получить некоторый контекст, я получил вывод base64
для огромного файла, и теперь мне нужно передать его в другую команду, однако мне нужно передать его как одно огромное число, но так как файл состоит из нескольких строк, а не все в одной строке, я не могу передать его в программу, потому что он будет обрабатывать каждую строку как новое число, и мне нужно, чтобы все это рассматривалось как одна большая один.
Я использую Ubuntu GNOME 15.10 с GNOME 3.18, я надеюсь, что этого можно достичь с помощью простой команды и / или скрипта.
Более простой путь: использовать tr
.
tr -d '[[:space:]]' <file1 >file2
(Используйте sponge
если необходимо записать в тот же файл.)
Довольно легкий с Vim:
vim -Nesc '%s/\_s//g' +wq file
-Nes
запускается тихий, несовместимый экс-режим (для легких сценариев с Vim).-c
и +
привыкли к командам выполнения%s/\_//g
замены во всех строках весь пробел, наряду с любыми новыми строками, ни с чем.wq
сохранил файл и выходит из Vim.С awk
, набор RS
(разделитель записей) к пробелу и ORS
(произведите разделитель записей) ни к чему:
awk -v RS='[[:space:]]' -v ORS= '1' foo
С GNU awk, можно сделать оперативное использование редактирования gawk -i inplace
.
AWK может сделать это цикличным выполнением все поля и использование printf "%s"
. Пример
cat /etc/passwd | awk '{for(i=1;i<=NF;i++) printf "%s",$i}'
выполненный Образец:
$ printf "to be or not to be\nthat is the question" | \
> awk '{for(i=1;i<=NF;i++) printf "%s",$i}'
tobeornottobethatisthequestion
Передайте его по каналу через этот жемчуг regex:
perl -p -e 's/[\n\r ]*//g'
mysql 18067 1 0 00:21 ? 00:00:00 /usr/sbin/mysqld
root 18242 12670 0 00:24 pts/7 00:00:00 grep --color=auto mysql
, Но когда я пытаюсь удалить/произвести чистку/установить его или попытаться соединиться с mysql-h 127.0.0.1-P 3306... я все еще добираюсь ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded
– piper
21 August 2017 в 11:25