Предположим, у меня есть файл:
File1:
PAPER TEAM MANISH NISHA GARIMA JYOUTI ........etc
File2 Я хочу:
PAPER
TEAM
MANISH
NISHA
GARIMA
JYOUTI
Строки для преобразования столбцов File1.
awk
sed
text-formatting
Yisha
источник
источник
Ответы:
Используя
tr
, замените каждый повторяющийся символ пробела () одним
\n
символом новой строки ( ).Но я думаю, вы хотите что-то подобное?
С
awk
нами можно сделать:Это объединяет все
END
позиции с одинаковыми номерами полей и печатает результат, который будет первой строкой в первом столбце, второй строкой во втором столбце и т. Д. Конечно, входной файл ограничен размером вашей памяти.источник
Вы можете просто сделать это через grep. По умолчанию grep выводит совпадение на отдельной строке.
ИЛИ
источник
grep
Вы также можете использовать
fmt
команду:источник
С GNU datamash :
источник
datamash
кажется лучшим инструментом для решения этой задачи, но интересно, сколько других инструментов можно использовать!Вы также можете сделать это используя
sed
:ПРИМЕЧАНИЕ. Не обрабатывает ситуацию, когда слова содержат пробелы.
источник
\n
как новуюИспользуя
awk
, устанавливая поле вывода output (OFS
) в качестве разделителя записи (строки) (RS
):источник
Используя
for
цикл:источник
Вы также можете попробовать использовать
sed
Обратите внимание, что я использую
@
в качестве разделителя для операции замещения. Это также создаст файл резервной копии. Если вам не нужна резервная копия, удалите .bakисточник
Версия Python:
Это использует
<
перенаправление в stdin Python отinput.txt
и пишет сoutput.txt
использованием>
перенаправления.stdin
Однострочная строка сама читает все строки из списка строк, где все пробелы заменяются символами новой строки, и мы перестраиваем весь текст, используя.join()
функцию.Альтернативный подход, позволяющий избежать замены нескольких пробелов в
.split()
строке на новую строку, состоит в том, чтобы разбить строку на список слов. Таким образом, мы можем гарантировать, что каждое слово отделено только одной новой строкойисточник
Используя
xargs
, (украдено из ответа Суравца ):Или, если требуется какое-либо незначительное переформатирование, используйте
printf
строки формата так, как это может понадобиться:источник
Мое решение будет:
источник
источник