【发布时间】:2012-03-12 14:02:42
【问题描述】:
我有一个 100k 行的 txt 文件。如果我想知道第 #24356 行的数据是什么样的,我该如何在命令行中做到这一点?
【问题讨论】:
我有一个 100k 行的 txt 文件。如果我想知道第 #24356 行的数据是什么样的,我该如何在命令行中做到这一点?
【问题讨论】:
您可以使用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]"
【讨论】:
awk 'NR==24356' file
awk 'NR==24356{print;exit}'
sed 可以打印指定的行范围,所以在这种情况下它将是sed -n 24356,24356p $FILE
【讨论】:
sed -n 24356p input_file.
sed '24356!d;q'
试试这个:
cat filename | head -24356 | tail -1
使用的命令应该在每个 *nix 系统上都可用
【讨论】:
head -23456 filename | tail -1,尽管我不得不承认我也会经常使用cat 启动管道,因为它比记住哪些命令可以采用文件名以及哪些命令更容易想要标准输入:-)