#bash #unix #sed #awk
#bash #unix #sed #awk
Вопрос:
У меня два вопроса. Во-первых, иногда, когда я кодирую в Unix и ввожу команду, и я делаю это неправильно, я получаю новую строку без моего запроса, и независимо от того, что я печатаю, ничего не происходит, пока я не выйду и не войду снова. Кто-нибудь знает, почему это происходит?
Во-вторых,
У меня есть файл, который состоит из: данные пространства имен Мне нужно получить данные, я слышал, что я должен использовать awk или sed, но я не уверен, как это сделать. Любая помощь приветствуется.
Ответ №1:
Деннис уже хорошо ответил на ваш первый вопрос. (Примечание: пожалуйста, задавайте только один вопрос за раз!)
Что касается вашего второго вопроса, это можно сделать гораздо проще.
awk '{ print $2 }' yourfile
По умолчанию awk использует пробел в качестве разделителя столбцов, поэтому это просто указывает awk распечатать второй столбец. Если вы хотите, чтобы выходные данные отправлялись в новый файл, просто сделайте это:
awk '{ print $2 }' yourfile > newfile
Комментарии:
1. ну, это дало бы мне второй фрагмент первой строки, но как насчет второй строки?
2. @EricAnderson, эта команда работает во всех строках. Я полагаю, что существует другой оператор awk или ключевое слово, которое нужно указать, чтобы работать только с первой строкой.
Ответ №2:
Первый вопрос:
Введите 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.
Комментарии:
1. Кроме того, некоторые команды по умолчанию принимают ввод на стандартном интерфейсе. Если вы запустите
cat
, это будет происходить до тех пор, пока вы не введете ctrl-c, ctrl-d или ctrl- для выхода из программы.2. @EricAnderson, это одинарные кавычки.
3. @EricAnderson: Да, это одинарные кавычки, также называемые апостроф. Что вы подразумеваете под «галочками»?
4. @Keith Thompson: Я думаю, он имеет в виду серьезные акценты.