У мене є приклад / etc / passwd-файл, такий:
tom:x:1000:1000:Work:/home/tom:/bin/bash
george:x:1000:1000:Work:/home/george:/bin/bash
bla:x:1000:1000:Work:/home/bla:/bin/bash
boo:x:1000:1000:Work:/home/boo:/bin/bash
bee:x:1000:1000:Work:/root/list:/bin/bash
Я намагаюся перерахувати всіх користувачів, у яких домашня папка /home/
.
я написав
cat ~/Desktop/e.txt |awk -F ":" '{if ($6 ~/^/home/) print $1;}'
де e.txt - текст, який я тут скопіював.
Я розумію, що існує проблема із зворотною косою рисою, яка є символом втечі, але як це виправити, щоб перерахувати їх в одному рядку команди?
grep home e.txt | cut -d ":" -f 1
. Вітаємо вас з нагородою UUOC. Однак це не гарне рішення. Що робити, якщо є сервіс "homebackups", який працює під окремим користувачем, названим на честь демона? Це хибний позитив.
cat > tool
варіант таких командних рядків, оскільки це може покращити чіткість, підтримуючи потік зліва направо. вводу-обробки-виходу ланцюга труб. Це є менш ефективним, але майже завжди мінімально так. Він також робить додавання прогрес бар , де ставлення і корисно при роботі в інтерактивному режимі дуже очевидно (просто замінити cat
з , pv
якщо він встановлений).
cat
та передавати такі інструменти, якawk
абоsed
подібні, оскільки їм можна надати ім'я файлу як аргумент.