Почему у вас не может быть Tab в файле sed -i «1i \ t 'word'»?

Удаление содержимого /var/lib/apt/lists/и обновление списков пакетов apt через

cd /var/lib/apt/lists
sudo rm -rv ./*
sudo apt update

устранило проблему.

0
19.06.2016, 11:46
2 ответа

С GNU sed :

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

или

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

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

1
28.01.2020, 02:27

Хотя 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
2
28.01.2020, 02:27

Теги

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