awk '/ G: / ' файл
вывод Linux показывает только право ':'
1011
Я забыл много из моей командной строки. Я делаю, cat file | grep "error"
и я хотел бы показать все справа от G: / включая G: /, если это возможно. Я думаю, это команда awk, но я не знаю что. Я пытался, awk ''
но + не работает, как я надеялся и догадался.
Что такое макет файла?
John T 14 лет назад
0
Хм, `G: /` - это Cygwin на Windows?
nik 14 лет назад
1
3 ответа на вопрос
2
JRobert
Это печатает полную строку. Также я могу видеть, что вы не проверяли, так как есть два), что дает ошибку. Решение sed выше работает.
14 лет назад
0
Вы управляли этим? Я сделал. Он работает просто отлично, основываясь на вашем описании файла (который я понял как «вещи ... G: / больше вещей больше вещей»). Требуются две пары; один, чтобы закрыть match (), один, чтобы закрыть substr (). match () находит строку, которую вы хотели напечатать; substr () печатает, откуда эта строка начинается до конца строки. Также: пожалуйста.
JRobert 14 лет назад
0
Ой, извини. Я сделал это, но я сделал это неправильно. Что объясняет, почему у меня была ошибка синтаксиса. ой, извините. Это прекрасно работает.
14 лет назад
0
Я рад, что это сработало для вас. И я ценю продолжение - спасибо.
JRobert 14 лет назад
0
1
Cry Havok
Пытаться:
cat file | sed "s/.*\(G:\/\)/\1/"
Это удалит все раньше G:/
. Имейте в виду, что если у вас есть несколько G:/
записей, это будет соответствовать самой последней записи. Если вы работаете только с одним файлом, выполните:
sed "s/.*\(G:\/\)/\1/" file
Не хотите ли перехватить текст после `G: /` до конца строки? Вам не хватает пары символов в шаблоне ... Однако, ведущий `. *` В шаблоне, вероятно, не позволит работать так, как ожидалось, даже с этим исправлением.
nik 14 лет назад
0
Я должен был сделать `sed" s / \ (. * \) \ (G:. * \) / \ 2 / "`
14 лет назад
0
@ acidzombie24: Вам, вероятно, не нужно захватывать первую группу. Это, вероятно, сработает: `s /.* \ (G:. * \) / \ 1 /` (скобки необходимо экранировать, если вы не используете опцию `-r` или ваша версия` sed` не делает это для вы).
Dennis Williamson 14 лет назад
0
Я скопировал результаты здесь неправильно. То, что произошло на моей стороне, было с тех пор, как первая группа не была захвачена, их не заменили / они все еще появлялись в stdout.
14 лет назад
0
0
terdon
Вы можете просто сделать:
grep error file | grep -oP 'G:.+'
Заметки:
- Вам не нужно присматривать за файлом, просто непосредственно введите grep 'error'.
- Второй grep использует флаг P для регулярных выражений perl. Регулярное выражение говорит: найдите «G:» и любые последующие символы.
Флаг о делает Grep напечатать найденную строку только :
-o, --only-matching Print only the matched (non-empty) parts of a matching line, with each such part on a separate output line.
Похожие вопросы
-
9
В чем разница между командами "su -s" и "sudo -s"?
-
4
Требуется хороший бесплатный образ Ubuntu Server VMWare
-
4
Каковы различия между основными дистрибутивами Linux? Я замечу?
-
-
2
Ограничить использование процессора для Flash в Firefox?
-
2
Как мне заставить мой микрофон работать под Debian GNOME?
-
2
Конки установки - образцы / идеи?
-
3
Каковы различия между оконными менеджерами Linux?
-
2
ThunderBird / Синхронизация освещения с SE k770i
-
4
Файловая система Linux
-
6
Полноэкранная медленная вспышка в KDE 4