繁体   English   中英

Bash 脚本 - 从“c”行显示文件

[英]Bash script - display file from the "c"th line

我有一个脚本,显示“n”行并显示“c”行。

#!/bin/bash
hn=5
tn=1
while getopts ":n:c:" opt
do
    case $opt in
        h) echo Pomocy
            exit 1
            ;;
        n) hn=$OPTARG ;;
        c) tn=$OPTARG ;;
        \?) echo Nieznana opcja $OPTARG;;
        :) echo Brakuje argumentu opcji $OPTARG ;;
    esac
done

shift $(($OPTIND-1))
for i do
    if [[ -f $1 ]];
    then

        cat $i | head -n $hn
    else
        echo "plik nie istnieje"
    fi
done

exit 0

如何让它从c行显示? 显示“n”行 iw 工作。 什么命令可以做“c”行? 默认从 1 行开始显示

感谢帮助。 这个命令很好用

cat $i |head -n $hn | tail -n +$tn

使用 tail、wc 和 awk 的简单方法:

a=`wc -l $file | awk '{print $1}'`
tail -n $(( a - tn)) $hn

如果我把它放在你的原始文件中:

#!/bin/bash
hn=5
tn=1
while getopts ":n:c:" opt
do
    case $opt in
        h) echo Pomocy
            exit 1
            ;;
        n) hn=$OPTARG ;;
        c) tn=$OPTARG ;;
        \?) echo Nieznana opcja $OPTARG;;
        :) echo Brakuje argumentu opcji $OPTARG ;;
    esac
done

shift $(($OPTIND-1))
for i do
    if [[ -f $1 ]];
    then
        a=`wc -l $file | awk '{print $1}'`
        tail -n $(( a - tn)) $hn
    else
        echo "plik nie istnieje"
    fi
done
exit 0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM