Как создать псевдоним для команды ssh?

  • С помощью tr и sed :

Замените все символы новой строки хешами (выберите любой другой символ, которого нет в ваших матрицах, если у вас есть хеши), тогда двойные хеши будут быть символами новой строки и одиночными просто пробелами: (GNU sed )

 tr '\n' '#'  <file  | sed 's/##/\n/g;s/#/ /g'

POSIX sed

 tr '\n' '#'  <file  | sed 's/##/\
 /g;s/#/ /g'
  • Относительно размера файла:

Возможно, вы также захотите разбить файл на матрицу блоки - отдельный файл для каждого, затем объедините их заново. Обратите внимание, что это много операций чтения / записи, и их следует учитывать только в том случае, если другие решения выходят за рамки вашей оперативной памяти.

csplit -b%04d -f file file '/^$/' '{*}'

Т.е. разделить файл на файлы с именами fileXXXX с непрерывным целым числом XXXX , в качестве маркера разделения использовать пустые строки '/ ^ $ /' ; делать на все случаи жизни '{*}' . Теперь воссоедините файлы по частям с помощью сценария оболочки:

for f in file???? ; do 
  sed '/^$/d' $f | tr '\n' ' ' >> newmatrices
done

I.e. удалите пустые строки, которые мы использовали в качестве маркеров разделения раньше, затем tr замените символы новой строки на пробелы и добавьте каждую строку в выходной файл newmatrices .

Конечно, и разделение, и воссоединение можно поместить в один сценарий.

Обратите внимание, что мне неизвестно, используются ли csplit разные стандарты в разных системах.

5
21.12.2017, 16:43
0 ответов

Теги

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