sed удаляют последнее пространство только на конце строки, объединенной с awk

Ядро Linux автоматически управляется управлением кэшем. Все, что загружено в оперативную память, остается там, пока другой процесс не нуждается в RAM, и больше нет. Таким образом, в RAM RAM Linux всегда должна быть заполнена. У вас система 128 ГБ ОЗУ, это более чем достаточно для файла 100-1000 МБ.

Чтобы загрузить огромный файл в RAM только CAT : Это:

cat huge_file > /dev/null 2>&1

Все вывод отправляется на / dev / null , но для этого он должен передавать системы RAM. При этом вы можете наблюдать, как кэшируется в / proc / meminfo .

Когда CAT заканчивается, выполняют приложение Ruby. Приложение Ruby теперь читает кэшированную версию огромного файла.

0
27.11.2014, 19:33
4 ответа
awk -F ' *\t' '{print $1 ","}'

ИЛИ:

sed $'s/ *\t.*/,/'
3
28.01.2020, 02:15

Я думаю, что вся операция может быть завершена с использованием SED 'S / ^ \ ([^ \ T] * \). * / \ 1, / ' ...

-1
28.01.2020, 02:15

Стриптиз этих трейлинговых пространств с помощью awk самого себя

awk -F'\t' '{sub(/[[:blank:]]+$/, "", $1);print $1","}' file
2
28.01.2020, 02:15

Вы можете использовать printf вместо использования Print обойти эту проблему.

$ awk '{for (i=1;i<NF;i++)printf("%s ", $i);printf("\b%s\n",",")}' file.txt 
Siouxsie Sioux Siouxsie Sioux,
Sylvia Tobias Sylvia Tobias,
Sydney Urshan Sydney Urshan,
Club Drummer (uncredited) Club Drummer (uncredited),

Или если вам это нужно с SED

$ sed -re 's/ +\.\.+/,/g' file.txt 
Siouxsie Sioux  Siouxsie Sioux,     
Sylvia Tobias   Sylvia Tobias,     
Sydney Urshan   Sydney Urshan, 
Club Drummer (uncredited)   Club Drummer (uncredited),
2
28.01.2020, 02:15

Теги

Похожие вопросы