Я пытаюсь перечислить первые 5 строк всех файлов в каталоге (создание команды в Unix). Я пытаюсь решить эту проблему с помощью команды head, которая выглядит примерно так:
head -n 5 directory/*
Это работает с файлами, но выдает ошибку для каталогов (очевидно).
Итак, мой вопрос: как я могу применить команду head только к файлам?
Мой bash-скрипт выглядит примерно так:
#!/bin/bash
# description: show first/last lines of all the files in a provided directory
if [ $# -ne 3 ]
then
echo "Error: Please provide 3 parameters."
echo "Usage Example: lshead -head 5 [DIR]"
exit
else
operation=$1
lines=$2
directory=$3
if [ "$operation" == "-head" ]
then
head -n $lines $directory/*
elif [ "$operation" == "-tail" ]
then
tail -n $lines $directory/*
fi
fi
Любые предложения очень ценятся и большое спасибо в ожидании.