2015-04-07 4 views
0

Я пытаюсь заменить < 92> с одной цитатой на веб-странице, используя tr. Когда я делаюredirect output from tr

tr "<92>" "'" < index.html 

Выход показывает, что замена произошла. Поэтому для редактирования на месте (или как можно ближе к tr получает) я делаю

tr "<92>" "'" <index.html>> index.html 

Файл не изменился. Для справки, перенаправление на другой файл вообще не работает правильно.

+1

, что происходит, когда вы '>> index_new.html'? Вы должны * никогда * входить и выводить в тот же файл – Alexander

+0

'tr' * переводит * символы, а не слова. Ваша исходная команда заменяет '' '' '' 'и игнорирует' 9', '2' и'> '. Вам нужно будет использовать что-то вроде 'sed', чтобы сделать что-то более сложное, чем перевод символов. –

+0

Вы на 100% лаяете неправильное дерево с помощью 'tr' здесь. Он заменяет 1 или более символов на 1 или более символов, а не на последовательности. Для этого используйте 'sed'. –

ответ

0

Насколько я знаю, tr не может использоваться для модификации на месте. Вы можете использовать sed в качестве альтернативы. Попробуйте:

sed "s/<92>/'/g" index.html

Если вы согласны с выводом, используйте INPLACE флаг (-i)

sed -i "s/<92>/'/g" index.html

Вы также можете обратиться к этому ответу: tr command not able to direct the Output?

+0

я на самом деле попытался СЭД первой, как это было то, что я знал, что для такого рода работы, но этой точной команды: 212 СЕПГ -i «s/<92>/'/ г» index.html не работал там. Это привело меня к тр. В зависимости от того, какие страницы руководства, которые, по вашему мнению, tr могут записывать в один и тот же файл, он переводится до тех пор, пока вы перенаправляете с добавлением стандартного вывода (>>) вместо перезаписывания стандартного вывода (>). Перезаписать результаты в содержимом исходного файла, сбитого. Я начинаю задумываться о среде, в которой этот провайдер работает. Я собираюсь попробовать в другом месте. –

+0

Итак, первая строка - это метатег, который ничего, кроме vi, не видит. Любые рекомендации для редактора потоков, которые могут обрабатывать метатеги? –

+0

О, в этом случае, я думаю, вы хотите заменить умные кавычки (эти символы: '' ''). Ну, в этом случае, я думаю, 'sed -i 's/[' '] /'/g" 'будет работать. – ohe