Обновление: расширение Arcege
идея sed-to-sed, у Вас может быть более managable расположение (табличный, или неровный) для Ваших шаблонов find/repl, которые могут быть встроены... и нет никакой потребности в промежуточном файле: (добавьте a g
перед p'<<'EOF'
вносить несколько изменений на строку... Отметьте это foo
, barbar
, и т.д. будут рассматривать sed
как регулярные выражения.
I=$'\01'; sed -nre "s/^([^ ]+) +/s$I\1$I/;s/$/$I/p"<<'EOF' |sed -f - file
foo By the middle of June,
barbar mosquitos were rampant,
foofoofoo the grass was tawny, a brown dust
barbarbarbar haze hung over the valley
EOF
(исходное сообщение)
Можно использовать sed
как исполняемый сценарий, с оберткой...
Можно определить находку и заменить текст в отдельном текстовом файле,
но для этого образца это определяется встроенное...
Этот сценарий преобразовывает Ваших find/repl пар в sed выражения и динамично создает исполняемый сценарий
I=$'\01'; set -f
printf "#!/bin/sed -f\n" > ~/bin/script.sed
while IFS= read -r line ;do
ix=$(expr index "$line" " ")
printf "s%s%s%s%s%s\n" $I ""${line:0:$((ix-1))}"" $I "${line:$ix}" $I
done <<'EOF' >> ~/bin/script.sed
$text1 By the middle of June,
$text2 mosquitos were rampant,
$text3 the grass was tawny, a brown dust
$text4 haze hung over the valley
EOF
chmod +x ~/bin/script.sed
Это - тестовый файл, который будет изменен.
'$' хорошо, поскольку это не в конце строки (для sed), и это никогда не будет выставлено оболочке, но любому маркеру, который не столкнется с sed
прекрасен. Можно даже использовать #
echo '$text1 $text2 $text3 $text4' > file
Принятие этого ~/bin
каталог $PATH, команда для выполнения:
script.sed file
Я натыкался на карты в том условии пару раз. Я сожалею, что сообщил, что я не смог зафиксировать любого из них. Я думаю, что это происходит, вероятно, из-за отказа оборудования, поскольку никакое программное обеспечение не обманывает, я мог думать, мог получить их идущий снова.
Если Вы ничего не могли восстановить, и Вы просто хотите попытаться отложить его в usuable состояние, следовать dd
совет от Renan. Если это будет Вашим первым разом, делая это, то Вам будет нужно больше деталей.
Это удалит все, так будет предупреждено. Отключите все другие диски и перезагрузите свой компьютер с Живым диском Linux или рискните потерей данных на включенном диске.
Еще не включайте свой диск. Выполните эту команду.
sudo fdisk -l
Теперь включите свой диск и выполните команду снова. Вы будете видеть запись, которая не была там прежде. Та запись является Вашим устройством. Запишите тот путь устройства. Если Вы не отключили все другие устройства, НЕ путайте ЭТО С ДРУГИМ.
Это будет что-то вроде этого:
/dev/sdx
Где x в sdx является Вашей буквой дисков.
Теперь, когда Вы нашли свой тип устройства в:
sudo dd if=/dev/zero of=/dev/sdx
где x в sdx является буквой Вашего диска. (Не должно быть числа в конце Вашего устройства для этой команды.)
Ожидайте его для обнуления. Теперь введите:
sudo fdisk /dev/sdx
Вы должны будете сначала создать дисковую маркировку DOS. Поэтому выберите ту опцию.
После создания дисковой маркировки DOS необходимо будет создать раздел. Выберите делают раздел из меню. Просто хит входит, и он даст Вам значения по умолчанию. Значения по умолчанию сделают раздел максимальным размером Вашего usb.
Выберите пункт меню, который говорит, чтобы выйти и записать изменения в диске. Удостоверьтесь, что сообщения не имеют ошибок. Если ошибки существуют, необходимо повторить эти предыдущие шаги (но не обнуляющий).
Теперь введите
mkfs /dev/sdx1
Снова, x является буквой Вашего диска.
Отключите и включите назад, и необходимо видеть его автоматический смонтированный. Это - разрешение, будет установлен базироваться, таким образом, Вы, возможно, должны скорректировать их.
Всегда будьте утомленными от этого диска в будущем. Создайте резервную копию всего. Я рекомендовал бы GParted, но я полагаю, что он не распознает обнуленные диски.
Так, как это походит на отказ оборудования, процедура, которую можно попробовать:
Начните путем взятия образа диска того, что может быть считано из устройства, с помощью dd
.
$ dd if=/dev/sdX of=memory_card.img
После, заполните его нулями, например. $ dd if=/dev/zero of=/dev/sdX
, затем переформатируйте его.
У меня была эта проблема. Сначала я попробовал различные методы форматирования. Законченные окна использования diskpart для 'форматирования быстрого fs=ntfs' только, чтобы видеть, изменило ли это размер правильно. Это не сделало. Затем я использовал эту утилиту форматирования SD-карты, рекомендуемую на сайте Raspberry Pi, и это добилось цели.
Честный Богу Это то, что я пытался, и это сработало.
Я взял ушной бутон (маленькие штуки с хлопком на одном конце. Хлопковый тампон) .. И намочить его с помощью лака для ногтей. Затем я убрал контакты (которые выглядели очень аккуратно и чистым, чтобы начать с !!), а затем вытирали ресторан салфеткой .. Тот, который они держат на своем столе, чтобы вытереть усы .. И тогда сделал это снова. На этот раз он не вытирал, но пусть эта вещь сухая (не занимает много времени .. Около 30 секунд) .. потом пополнил его в альт .. Это было так же хорошо, как новый. (И все, что после последования всех шагов выше, включая пытаясь писать нули) .. И все те начали отображать 0 байтов. Я мог бы восстановить даже старые данные.
Каждый раз, когда я сталкивался именно с этим видом отказа, тщательное изучение соответствующей карты micro SD показывало, что мне действительно удалось взломать ее -, то есть физически сломать ее -сразу за контактной полосой., с трещиной на противоположной от контактов стороне платы.
Тип простого разъема micro SD, который HardKernel использует на своих платах для разработки ODroid, который не полностью закрывает вставленные карты, делает их особенно уязвимыми для такого рода повреждений, и карты SanDisk, в частности, кажутся довольно физически хрупкими в этом обнаруживать.
Если вам очень очень повезло, вы можете восстановить работу, химически запаяв трещину вместе с агрессивным растворителем, таким как жидкость для снятия лака, удерживая карту слегка согнутой точно так, как это необходимо для повторного соединения. какая бы внутренняя гусеница не отделилась.
Возможно, вы даже сможете сделать это случайно, убедив себя, что на самом деле вы чистите контактные площадки с помощью жидкости для снятия лака. Но карта никогда никогда не будет снова надежной; если вам удастся исправить один из них таким образом, лучшим вариантом будет немедленно скопировать его на новую карту, а затем отредактировать.