Как переставить список слов, чтобы количество слов за строкой - PullRequest
0 голосов
/ 12 марта 2020

Я хотел бы выполнить sh задачу, используя bash.

Допустим, у меня есть

"a":1,
"y":1,
"a":1,
"y":1,
"à":1,

И я хотел бы иметь:

"a":1,"y":1,
"a":1,"y":1,
"à":1,

Который я перевожу максимум на 2 элемента в строке.

Ответы [ 2 ]

1 голос
/ 12 марта 2020

Просто вставьте файл дважды без разделителя:

paste -d '' - - < input_file.txt
1 голос
/ 12 марта 2020

Perl на помощь!

perl -pe 'chomp if $. % 2' -- file
  • -p читает строку ввода построчно и печатает каждую строку после обработки
  • $. содержит текущую строку число
  • % является оператором модуля, поэтому $. % 2 возвращает true в нечетных строках
  • chomp удаляет последний перевод строки

Чистое bash решение:

i=0
while read line ; do
    printf %s "$line"
    ((i=\!i)) || printf '\n'
done < file

Переменная $i переключается между 0 и 1, новая строка печатается только для четных строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...