我怎样才能在unix中做这个练习?创建以下命令: lshead.bash – 列出参数指定的目录中每个文件的前几行。此命令还应该允许选项列出文件的前 n 行或后 n 行。示例命令:lshead.bash –head 10 Documents 将列出文档目录中每个文件的前十行。
答案1
这段代码给出了基本的想法。如果需要,您可以自己添加一些功能
编辑
#!/bin/bash
cur_dir=`pwd`
function head_file()
{
ls -p $cur_dir | grep -v / | while read file;do
echo "First $1 lines of the FILE: $file"
cat $file | head -n+$1 # Displaying the First n lines
echo "*****************END OF THE FILE: $file**************"
done
}
function tail_file()
{
ls -p $cur_dir | grep -v / | while read file;do
echo "Last $1 lines of the FILE: $file"
cat $file | tail -n+$1 # Displaying the last n lines
echo "**************END OF THE FILE: $file******************"
done
}
case "$1" in
head)
head_file $2
;;
tail)
tail_file $2
;;
*)
echo "Invalid Option :-("
exit 1
esac
exit 0