Как выполниться, grep в tcl для получения XYZ-123 вводят шаблон

Если у вас были NTFS с данными, а затем LUKSFormat Это первый 129KIB 129KIB NTFS был перезаписан заголовком Лукс (даже больше, если вы добавили более одной парольной фразы), и, таким образом, NTFS, вероятно, поврежден.

Если у вас нет другой копии ваших данных, вы должны остановить все на данный момент и перейдите в процедуру восстановления только для чтения. Я не уверен, насколько легко NTFS можно восстановить в этой ситуации.

Внутреннее шифрование с луками сложно. Стандарт LUKSFormat не зашифрует что-либо, он пишет только заголовок Лукса, который позволяет вам Luksopen устройству. Что-нибудь, написанное на это устройство, затем зашифровано, это означает, что вы сначала MKFS это с файловой системой вашего выбора, а затем копировать файлы к нему.

Если вам нужно избавиться от старых, незашифрованных данных (если это не новый диск), вы даже должны перезаписать все устройство один раз ( Shred -N 1 или аналогичный) перед LUKSFormat. Вы также можете перезаписать свободное пространство в созданном вами файловой системе, но она оставляет некоторые отверстия ( 192KIB-2MIB в самом заголовке Лукса, для начала).

0
29.08.2014, 01:02
2 ответа

tcl использует фигурные скобки в качестве кавычек, а не одинарные кавычки. Это будет работать:

grep {[A-Z][A-Z][A-Z]-[0-9][0-9][0-9]} file1 > file2

но имейте в виду, что если совпадений нет, то все равно будет сообщаться ошибка, например,

child process exited abnormally
    while executing
"exec grep {[A-Z][A-Z][A-Z]-[0-9][0-9][0-9]} file1 > file2"
    (file "./foo" line 4)

Для , что , Документация Tcl указывает, что вы должны заключить свою команду в блок catch , например,

set status 0
if {[catch {exec grep {[A-Z][A-Z][A-Z]-[0-9][0-9][0-9]} file1 > file2} results options]} {
    set details [dict get $options -errorcode]
    if {[lindex $details 0] eq "CHILDSTATUS"} {
        set status [lindex $details 2]
    } else {
        puts "unexpected error $options $results"
        set status 99
    }
}

Дополнительная литература:

  • tcl - Общие сведения об использовании фигурных скобок
    В одном из ответов говорится фигурные скобки аналогичны одинарным кавычкам оболочки, а двойные кавычки действуют как двойные кавычки оболочки, но не поясняют, что последние действуют внутри tcl , а использование двойных кавычек приведет к недопустимое имя команды "AZ" ошибка.
1
28.01.2020, 02:52

Вы пробовали просто использовать exec ?

То есть:

exec grep "[A-Z][A-Z][A-Z]\-[0-9][0-9][0-9]" file1 > file2
0
28.01.2020, 02:52

Теги

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