В настоящее время нет способа, по крайней мере, не известного простого способа запуска молнии непосредственно из командной строки. Здесь есть отслеживание ошибок: https://bugzilla.mozilla.org/show_bug.cgi?id=359807
Вы можете добавить себя в список CC (как то, что я сделал), чтобы получить информацию об этом
Sunbird - это автономный календарь, но Mozilla прекратил его, поэтому я не могу рекомендовать его для вас.
В общем редактирование на месте с помощью скрипта сложно, но вы можете использовать echo и cat, а затем mv
echo "fred" > fred.txt
cat fred.txt t.txt >new.t.txt
# now the file new.t.txt has a new line "fred" at the top of it
cat new.t.txt
# can now do the rename/move
mv new.t.txt t.txt
Однако, если вы играете с sources.list вам нужно добавить некоторые проверки и пуленепробивание, чтобы обнаружить ошибки и т. д., потому что вы действительно не хотите этого потерять. Но это отдельный вопрос: -)
./prepend.sh "myString" ./myfile.txt
известно, что prepend является моей пользовательской оболочкой:
#!/bin/sh
#add Line at the top of File
# @author Abdennour TOUMI
if [ -e $2 ]; then
sed -i -e '1i$1\' $2
fi
Используйте также путь relatif или абсолютный путь, он должен работать нормально:
./prepend.sh "my New Line at Top" ../Documents/myfile.txt
, если вы хотите создать постоянный скрипт, откройте nano /etc/bash.bashrc, затем добавьте эту функцию в конец файла:
function prepend(){
# @author Abdennour TOUMI
if [ -e $2 ]; then
sed -i -e '1i$1\' $2
fi
}
. Повторно запустите терминал и наслаждайтесь:
prepend "another line at top" /path/to/my/file.txt
И почему бы не использовать для этого подлинный текстовый редактор? ed - стандартный текстовый редактор.
ed -s filename <<< $'1i\nFIRST LINE HERE\n.\nwq'
Или, если вы хотите, чтобы команды были более читабельными:
ed -s filename < <(printf '%s\n' 1i "FIRST LINE" . wq)
1: перейти к первой строке i: вставьте режим, в который вы хотите вставить ... .: прекратите вставку, вернитесь в нормальный режим wq: напишите и выйдите, спасибо, до свидания. Всегда есть опция awk. Замените переменную string содержимым. Однако это не изменение на месте. Лично я склонен не делать изменений на месте. Это, безусловно, личное предпочтение. Две вещи, -v означает, что переменная в awk и переменная n используются здесь для сопоставления номера строки, эффективно NR == 1. Вы можете использовать это несколькими способами, просто изменив значение n и s.
string="My New first line"; awk -v n=1 -v s="$string" 'NR == n {print s} {print}' file.source > file.target
Пример:
% cat file.source
First Line
Second Line
Third Line
% string="Updated First Line"; awk -v n=1 -v s="$string" 'NR == n {print s} {print}' file.source > file.target; cat ./file.target !698
Updated First Line
First Line
Second Line
Third Line
Вы можете использовать Vim в режиме Ex:
ex -sc '1i|hello world' -cx sources.list
1 выбрать первую строку i вставить новую строку текста x сохранить и закрыть