ошибка в Unix и sed-кодировании - PullRequest
1 голос
/ 06 октября 2011

У меня два вопроса.Во-первых, иногда, когда я пишу код в Unix и ввожу команду, а я делаю это неправильно, я получаю новую строку без моего приглашения и независимо от того, что я печатаю, ничего не происходит, пока я не выйду и не войду снова.Кто-нибудь знает, почему это происходит?

Во-вторых,

У меня есть файл, который состоит из: имя файла пробел данных Мне нужно получить данные, я слышал, что яследует использовать awk или sed, но я не уверен, как это сделать.Любая помощь приветствуется.

Ответы [ 2 ]

2 голосов
/ 07 октября 2011

Денис уже хорошо ответил на ваш первый вопрос.(Примечание: пожалуйста, задавайте только один вопрос за раз!)

Для вашего второго вопроса это можно сделать гораздо проще.

awk '{ print $2 }' yourfile

По умолчанию awk использует пробел в качестве своегоразделитель столбцов, так что это просто говорит awk распечатать второй столбец.Если вы хотите, чтобы вывод был отправлен в новый файл, просто сделайте это:

awk '{ print $2 }' yourfile > newfile
2 голосов
/ 06 октября 2011

Первый вопрос:

Введите echo ", и это произойдет.Unix поддерживает многострочные команды.

Пример:

echo "
is a multi-line
command"

Введите " и введите для завершения.

Второй вопрос:

Вот ссылка на хороший учебник AWK: Awk - Учебное пособие и введение

По сути, вы используете

awk '{ print "echo " $2 }' filename | sh

, например, для эхавсе данные.

$2 обращается ко второму фрагменту информации каждой строки (фрагменты разделяются пробелами).

print "echo " $2 приведет к выводу awk echo data.

Наконец, вы направляетесь к sh, чтобы выполнить команду вывода awk.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...