Как заменить новые строки символами табуляции?

Вы задаете неправильный вопрос, потому что вот единственный способ ответить что:

<!DOCTYPE html>
<html>
<head>
  <style>* { background: #fff }</style>
</head>
<body></body>
</html>

Не большая часть ответа, не так ли?:)

Все остальные прямо здесь - заставляют Ваш CSS работать в каждом браузере, не пытайтесь сделать его , выглядят одинаково . Вы не можете.

13
задан doubleDown 4 August 2013 в 10:08
поделиться

4 ответа

не уверен, какой результат вы хотите получить

# awk -vRS="\n" -vORS="\t" '1' file
hi      hello   hallo   greetings       salutations     no more hello for you 
12
ответ дан 1 December 2019 в 17:16
поделиться

Здесь tr , я думаю, лучше:

tr "\n" "\t" < newlines 

Как предложил Нифл в комментарии, новые строки здесь имя файла, содержащего исходный текст.

Поскольку sed настолько строчно-ориентирован, его сложнее использовать в таком случае.

40
ответ дан 1 December 2019 в 17:16
поделиться

Вы не можете заменять новые строки построчно с помощью sed . Вы должны накапливать строки и заменять символы новой строки между ними.

text abc\n    <- can't replace this one

text abc\ntext def\n    <- you can replace the one after "abc" but not the one at the end

Этот sed скрипт накапливает все строки и удаляет все новые строки, кроме последней:

sed -n '1{x;d};${H;x;s/\n/\t/g;p};{H}'

Кстати, ваш сценарий sed sed -e "s _ / \ n _ / \ t_g" пытается сказать «заменить все косые черты, за которыми следует новая строка, на косую черту, за которой следует табуляция». Подчеркивания берут на себя роль разделителей для команды s , так что косые черты могут быть более легко использованы в качестве символов для поиска и замены.

6
ответ дан 1 December 2019 в 17:16
поделиться
sed '$!{:a;N;s/\n/\t/;ta}' file
9
ответ дан 1 December 2019 в 17:16
поделиться
Другие вопросы по тегам:

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