Написать команду unix для подсчета общего количества слов в первых n строках файла?

Есть несколько проблем:

имя хоста

Если ваш логин не гарантирует, что эта переменная существует, вы должны использовать вместо нее команду hostname:

chk=$(hostname)

сш

ssh $hostпросто входит в систему и ждет ввода с терминала. Следующая команда выполняется после выхода ssh. Вы должны добавить команду к вызову ssh. Было бы слишком много передавать весь материал caseв ssh, но, насколько я понимаю, вам нужен только результатhostname:

chk="(ssh "$host" hostname)"
-3
10.04.2020, 12:58
3 ответа
$ head -n 3 file | tr -s '/ -' '\n\n\n' | wc -l
      28

Количество 28похоже, это количество, которое вы получите для первых трех строк заданного текста, если вы разграничите слова пробелами, тире и косой чертой.

Приведенная выше команда разделит три первые строки на одно такое слово в строке, заменив каждый пробел, тире и косую черту на новую строку (и удалив несколько последовательных новых строк с помощью параметра -sс tr), и затем подсчитайте количество строк, полученных в результате этого разбиения.

Если вы используете более естественные head -n 3 file | wc -w, вы получите 25слов. Это связано с тем, что wc -wсчитает только слова, разделенные пробелами, и будет рассматривать как Unix-Like, так и GNU/Linuxкак отдельные слова.

0
28.04.2021, 23:18
head -n 4 myfile | wc -w

myfile — входной файл, 4 — первые 4 строки

-2
28.04.2021, 23:18

Использование вкладыша awk one -:

awk ' { gsub("[-/]"," ") } NR<4 { w+=NF };END { print w }' <filename>
2
28.04.2021, 23:18

Теги

Похожие вопросы