Это должно работать:
tar zcf calendar.tgz "a calendar_final" --exclude '.*'
У меня нет доступа к sed прямо сейчас, таким образом, я не совсем уверен, что это корректно, но я думаю, что просто необходимо удалить первую обратную косую черту и пространство после нее.
sed -i '1i\\\def\\\submit{}' 'dirname/filename'
Попробуйте его и посмотрите, работает ли это.
sed
для редактирования потоков - файл не является потоком. Используйте программу, которая предназначена с этой целью, какed
или ex
. -i
опция к sed
не является только не портативным, это также повредит любые символьные ссылки на Ваш файл, так как это по существу удаляет его и воссоздает его, который бессмыслен.
ed -s [file] << EOF
0a
\\def\\submit{}
.
w
EOF
sed -i
воздействовать на.
– Chris Down
21.09.2011, 23:49
-i
удаление символьных ссылок, хотя GNU sed
обеспечивает --follow-symlinks
опция для того случая. Конечно, все это представляется спорное более важным моментом это sed -i
является непортативным и должен избежаться так или иначе.
– jw013
22.03.2012, 18:03
Я смог получить рабочую версию этого при помощи ответа на: "Как я могу предварительно ожидать тег к началу нескольких файлов?".
Я ранее не знал об этом вопросе. Решение:
sed -i '1s/^/\\\def\\\submit{}\n/' 'dirname/filename'
BTW, я думаю: "Как я могу предварительно ожидать тег к началу нескольких файлов?" был бы лучший вопрос сослаться, чем: "Вставляя текст в начале файла с sed через терминал в Linux", с которым был связан этот вопрос. Это имеет намного больше ответов.
Во-первых: обратные косые черты выхода не из-за оболочки - строка единственная заключенный в кавычки. Скорее это из-за sed
самостоятельно.
Во-вторых: ответ Chris Down имеет некоторую заслугу - не используют молоток вместо отвертки. С другой стороны, мобильность и символьные ссылки являются не всегда проблемой, если это так, обоими
sed '1i\\\def\\submit{}'
и
sed '1i\\def\submit{}\'
Должен сделать то, в чем Вы нуждаетесь. Я не смог узнать, почему запаздывающая обратная косая черта в последней форме выключает выход в строке, но это, кажется, работает как этот, по крайней мере, в GNU sed
когда команды помещаются на командную строку. При использовании в сценарии только первая форма, кажется, работает (потому что запаздывающая обратная косая черта используется для обозначения конца строки, которая сопровождается другим):
#!/bin/sed -f
1i\
\\def\\submit{}