Необходимо установить заголовки ядрa для компиляции модуля. Заголовки ядрa не являются частью источника ядра (или по крайней мере не все они), они сгенерированы, когда ядро компилируется, и некоторые из этих заголовков зависят от параметров компиляции.
Существует неофициальный пакет заголовка ядрa. Если Вы предпочитаете делать вещи сами, скомпилируйте свое собственное ядро.
После того как у Вас есть заголовки ядрa, /lib/modules/2.6.37.6/build
должна быть символьная ссылка на каталог, который содержит include
и arch
diretories с заголовками, а также Module.symvers
файл, содержащий таблицу символов ядра. Например:
ln -s /usr/src/linux-2.6.37.6 /lib/modules/2.6.37.6/build
Вы не можете заменить несколько вещей как это с tr
. Я использовал бы sed
сделать это вместо этого.
$ sed "s/^/'/" file.txt
'AAAA
'BBBB
'CCCC
'DDDD
Говорит для нахождения начала каждой строки (^
) и замените его одинарной кавычкой ('
).
Если Вы хотите перенести "слова" в одинарные кавычки, можно использовать эту форму команды:
$ sed "s/\(.*\)/'\1'/" file.txt
'AAAA'
'BBBB'
'CCCC'
'DDDD'
На этот раз мы сохраняем что-либо на строке во временной переменной (\1
). Мы затем заменяем строку этим '\1'
.
Эта команда может быть сокращена до этого, использовать GNU определенные переключатели:
$ sed -r "s/^(.*)$/'&'/" file.txt
'AAAA'
'BBBB'
'CCCC'
'DDDD'
tr
для транслитерации. Одно популярное использование tr
изменение случай строк:
$ echo 'this is a test' | tr a-z A-Z
THIS IS A TEST
Некоторая версия операционных систем tr
, нужно a-z
иметь форму [a-z]
, в этом случае это должна также быть кавычка:
$ echo 'this is a test' | tr '[a-z]' '[A-Z]'
THIS IS A TEST
Информация Вы имеете info
пакет установил в Вашей системе, страница TR имеет некоторые очень хорошие примеры и дальнейшее объяснение tr
команда:
info coreutils 'tr invocation'
Поскольку, что Вы пытаетесь достигнуть Вас, вероятно, хотят использовать sed, жемчуг или awk.
Perl:
perl -pe "s/^/'/" file
для каждой строки, Соответствие запуск строки (^
), замените '
Sed:
sed "s/^/'/" file
Подобный примеру жемчуга
Awk:
awk -v x="'" '{ print x$0 }' foo
Присвойте переменную x, чтобы быть '
и для каждой печати строки '
и затем целая строка
Нет, tr
только для замены символами один за другим. Вы не можете добавить символы этот путь.
Можно использовать что-то как жемчуг, чтобы сделать так:
perl -pe "s/\w+/'$&'/"
С tr
можно только, например, заменить одним видом кавычки другим видом:
tr \" \'
Те обратные косые черты только, чтобы сказать Вашей оболочке отправлять символ, как это и не пытающийся интерпретировать его сам.
Они не будут работать:
tr '"' '''
tr '"' '\''
Первый аргумент ('"'
) прекрасно, это - точно то же, чем \"
. Второй аргумент в обоих случаях не работает: Вы не можете заключить одинарные кавычки в кавычки с помощью одинарных кавычек в качестве вторых концов кавычки, заключение в кавычки и третья кавычка открывают новую, которая отсутствует. (поэтому Ваша оболочка открывает новую строку для ожидания недостающей кавычки конца.)
Но все это - просто материал оболочки und, не имеет никакого отношения tr
.
Быстрое решение обычно использует самую простую утилиту с одной задачей.
tr
простая утилита, но для чего-то еще: транслитерация (превращающий данный символы в другие), удаляя данный символы или сжимая символы.
Больше универсальных утилит как sed
, awk
или perl
(по приказу размера), сделает это, но здесь, у Вас есть утилита с одной задачей, которая сделала бы это хорошо также: paste
:
paste -d\' /dev/null file.txt /dev/null
Или:
:|paste -d\' - file.txt -
sed -r "s/^(.*)$/'&'/" file.txt
. – Miroslav Koškár 16.08.2013, 00:22-r
конкретный GNU.sed "s/.*/'&'/"
. Никакая потребность в ^ или $ или получать целый шаблон. основной метод – Stéphane Chazelas 16.08.2013, 08:44