2010-02-03 3 views
0

я использую терминал в Mac с помощью следующей команды:Использование Grep в Mac Terminal

df -lak | grep File||disk02 

, что я хочу использовать этот скрипт, чтобы получить заголовок команды DF (дисковое пространство) и линию только с disk02. Я думаю, '|' является символом в grep как или логике. Однако, поскольку я использую grep в терминале, char '|' также означает трубу. Поэтому я попытался использовать '||' чтобы избежать трубопроводов, но он не получает того, что я хочу. Возвращается только заголовок с «Файл».

Не знаете, как я могу использовать эту команду сценария в терминале?

ответ

1

Использование AWK

df -lak | awk 'NR==1 || /disk02/' 

Или

df -lak | grep -E "File|disk02" 
+0

Я также могу использовать awk 'NR <3' для моего случая (первые две строки - это то, что я хочу). awk для меня новый. Благодаря! –

+0

или awk '/ Файл/||/disk02/', что касается моего вопроса в этом сообщении. –

+0

будьте осторожны с другими строками, в которых есть «Файл». И да, awk более универсален, чем grep (и он делает то, что делает grep и многое другое). Поэтому его стоит изучить. – ghostdog74

1
df -lak | grep -E '(^File|disk02)' 

Вы можете сократить grep -E к egrep.

0

Просто покажите точки монтирования, которые вас интересуют!

df -lak/
Смежные вопросы