请输出in.txt文件中的2 4 6 8 9 10 12行
in.txt文件: 学号 姓名 性别 年龄 1001 张三 男 18 1002 赵四 男 19 1003 李丽 女 18 1004 刘芳 女 32 1005 王五 男 54 1006 小明 男 32 1007 麻子 男 12 1008 叮当 女 19 1009 哑巴 男 23 10010 王伟 男 54 10012 罗锅 女 22 10013 小红 女 25 方法1: #!/bin/sh set +x for i in 2 4 6 8 9 10 12; do file=in.txt line=`head -$i $file|tail -1` exec 4>out.txt echo "$line" echo "$line" >&4 done 方法2: #!/bin/sh for i in 2 4 6 8 9 10 12; do file=in.txt line=`head -$i $file|tail -1` echo "$line" done 方法3: #!/bin/sh a=`sed -n '2p' in.txt` b=`sed -n '4p' in.txt` c=`sed -n '6p' in.txt` d=`sed -n '8p' in.txt` e=`sed -n '9p' in.txt` f=`sed -n '10p' in.txt` g=`sed -n '12p' in.txt` #echo $a $b echo $a"\n" $b"\n" $c"\n" $d"\n" $e"\n" $f"\n" $g"\n">cc.txt #awk 'BEGIN{print split($a#$b#$c#$d#$e#$f#$g,myarry,"#")}END{for(i in myarry){print myarry[i]}}' #while read line; #do #echo $line #done<cc.txt file=cc.txt cat $file|while read line; do echo $line done 经典方法4: #!/bin/sh file=in.txt i=1 while [ $i -lt 15 ] do j=2 #echo "i=$i j=$j" c=`expr $i % $j` if [ $c -eq 0 -o $i -eq 9 ] then #echo "$i" #sed -n "'-$i'"p $file echo "awk 'NR==$i{print \$0}' $file" else i=`expr $i + 1 ` continue fi i=`expr $i + 1 ` done|sh