Предполагая, что файл, сгенерированный am.sh
, содержит одно слово в строке, вы можете использовать:
#!/bin/sh
[ $# = 2 ] || { echo "Usage: $(basename "$0" .sh) file numlines" >&2; exit 1; }
sed "${2}q" "$1"
Первая строка кода проверяет наличие двух аргументов и указывает, как использовать команду и завершается с ошибкой, если их нет.
Вторая строка использовала sed
для печати первых строк файла. Эквивалентно, вы можете использовать head
для печати первых строк файла:
head -n "$2" "$1"
Если в файле может быть несколько слов, то вы можете использовать:
tr -s '[[:space:]]' '\n' < "$1" |
sed "${2}q"
(или head -n "$2"
).
Обратите внимание, что скрипт не проверяет, является ли $1
файлом, который доступен для чтения, или что $2
является целым числом, большим нуля.