2016-09-08 2 views
0

У меня есть следующие строки в CmdLineВвод чисел с sed в Linux?

sed -e '1s/^/\\documentstyle\[11pt\]\{article\}\n/' -e 's/[0-9]//g' test.txt 

Мой желаемый результат что-то вроде этого

\documentstyle[11pt]{article} 
rest of the file 

Однако я только получаю это

\documentstyle[pt]{article} 
rest of the file 

Я не могу найти способ вставки чисел. Я попробовал обратный слэш. Решение может быть простым, но я новичок с sed.

+2

Ваша вторая команда замены удаляет номера, добавленные вами в первый раз. Итак, какова вторая ('s/[0-9] // g') операция, предназначенная для выполнения? –

+0

О, ничего себе, я попытался выполнить обе задачи в одной строке и полностью забыл об этом. Неверная ошибка. Спасибо за вашу помощь! – ricknaght

ответ

1

Отметьте, что sed has more commands, а не только s///. Для того, чтобы вставить строку в верхней части файла:

sed -e '1i\ 
\\\documentstyle[11pt]{article}' -e 's/[0-9]//g' file 

(удручающе, количество обратных косых черт, чтобы достичь обратного косых черт на выходе был найдено путем проб и ошибок)

бонусом является то, что не влияет ваша цель - удалить номера.

0

Моя вторая команда удаляла номера, работая по назначению, но я просто пытался это сделать сразу. Кредиты Джонатану Леффлеру.