头尾命令

头尾命令

我怎样才能在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

相关内容