2012-03-12 57 views

回答

2

sed可以打印线范围列出,所以在这种情况下,这将是sed -n 24356,24356p $FILE

+3

另一个很好的。请记住,对于_single_行,您只需执行'sed -n 24356p input_file'。 – paxdiablo 2012-03-12 14:10:08

+1

一旦达到目标,就没有意义了! 'sed'24356!d; q'' – potong 2012-03-12 17:27:39

3

你可以得到一个特定的符合awk

awk 'NR==24356{print;exit}' input_file 

这会尽快打印线和退出的记录数NR是你的愿望,否则它不会做任何事情。该exit是确保你没有你感兴趣的一个后处理不必要的线条

例如,请参见下面的成绩单:

pax> cat qq.sh 
while read line 
do 
    echo "Reading within the loop: [$line]" 
    echo -n "What do you want to say? " 
    read -u 3 something 
    echo "You input: [$something]" 
done 3<&0 <qq.sh 

pax> awk 'NR==2{print;exit}' qq.sh 
do 

pax> awk 'NR==3{print;exit}' qq.sh 
    echo "Reading within the loop: [$line]" 
+1

只有在您提供评估为true的条件时才会发生默认打印。这就足够了:'awk'NR == 24356'文件' – 2012-03-12 14:38:48

+0

到达你想要的行后,不需要阅读。 'awk'NR == 24356 {print; exit}'' – potong 2012-03-12 17:32:55

+0

这两个好点,伙计们。我已将它们纳入答案。 – paxdiablo 2012-03-13 01:09:35

2

试试这个:使用

cat filename | head -24356 | tail -1 

命令应可在每* nix系统

+1

或者自己保存一个进程并使用'head -23456 filename |尾巴-1',但我不得不承认,我经常会用'cat'启动管道,因为它比记住哪些命令可以取文件名并且只需要标准输入更简单:-) – paxdiablo 2012-03-12 14:15:19

相关问题