Intereting Posts
Как я могу заставить apt-listbugs забыть о прикрепленных пакетах уже увиденных ошибок? Как просмотреть имена файлов, чувствительных к регистру, для томов iso9660 / Joliet + UCS-3? * .tar.gz резервное копирование Arch Linux привязывает медиа-ключи к сценарию bash Как использовать `модуль load program / 1.1` в сценарии bash? ceph fs слишком высокая латентность, что приводит к высокой нагрузке на виртуальные машины Случайно отформатированный раздел Ubuntu для NTFS. Восстановление? Неверная ошибка драйвера Vulkan с проприетарным драйвером Nvidia 358 Как сделать снимок экрана в LXDE с помощью scrot и кнопки Print Screen на моей клавиатуре? nr_periods из cpu.stat в группах на RHEL Как использовать Awk для печати между двумя позиционными параметрами Программный рейд + отдельные разделы? Проблемы с timesyncd или networkd Есть ли способ сбросить информацию CPUID CPU? Переименовать определенный уровень подпапок

Почему вы не можете использовать Tab в файле sed -i "1i \ t 'word'?

ПСЕВДОКОД

printf "Masi \nwas \nhere" > /tmp/2 sed -i "1i \tword \t 'include word'" /tmp/2 

Ожидаемый результат: вкладка перед первым word . Выход: tword 'include word' . Попытка использовать переменную для решения проблемы с слишком маленькими тиками

 printf "masi \nwas \nhere" > /tmp/2 sentence="\tword \t 'include word'" sed -i "1i $sentence" /tmp/2 

Вывод: тот же самый вопрос tword 'include word' .

С GNU sed :

 sed -i '1i\\t'$sentence /tmp/2 

или

 sed -i "1i\\\t$sentence" /tmp/2 

Вставляемый текст начинается после первого. Одинарная кавычка сценария sed чтобы остановить вашу оболочку от выполнения вещи с помощью \t (или вставить еще один, как во втором примере выше). С одинарными кавычками объединяйте $sentence с помощью скрипта sed чтобы он расширялся оболочкой.

Хотя sed может интерпретировать \t в регулярном выражении, ни один из ваших сценариев не использует его таким образом. Скорее, он использует \t как литеральную строку.

Вы можете делать то, что хотите:

 printf "Masi \nwas \nhere" > /tmp/2 sed -i "1i XwordXinclude word'" /tmp/2 sed -i '1,1s/X/\t/g' /tmp/2