是否有用于拾取第n行的shell命令?

是否有用于拾取第n行的shell命令?,shell,Shell,是否有shell命令来选择字符串的第n行 例如: line1 line2 line3 选择第2行 更新:谢谢您。在您的帮助下,我想出了一个字符串的解决方案: 选择第二行: echo -e "1\n2\n3" | head -2 | tail -1 其中“n”是您的电话号码。但它有点低效,启动两个进程 或者sed也可以这样做。要打印第四行: $ sed -n 4p filename 详细说明3种不同的sed方法 # print line number 52 sed -n '52p' # me

是否有shell命令来选择字符串的第n行

例如:

line1
line2
line3
选择第2行

更新:谢谢您。在您的帮助下,我想出了一个字符串的解决方案:

选择第二行:

echo -e "1\n2\n3" | head -2 | tail -1
其中“n”是您的电话号码。但它有点低效,启动两个进程

或者
sed
也可以这样做。要打印第四行:

$ sed -n 4p filename
详细说明3种不同的sed方法

# print line number 52
sed -n '52p' # method 1
sed '52!d' # method 2
sed '52q;d' # method 3, efficient on large files

打印a中的第4行。txt.

使用
gawk

gawk -v n=3 'n==NR { print; exit }' a.txt

太好了,谢谢。
'52p'
选项究竟是如何工作的?我从手册上看不出来。@JohnThreepwood:很简单:
-n
表示“不自动打印”,而
52p
基本上表示“第52行:打印”@Qiau:head的所有实现都不支持
head-4
。有些人需要
head-n4
——我认为这样更便于携带。“不,这不是针对个人的,我只是碰巧发现了你写的其他抱怨!”。如果你真的在意,你会选择被接受的答案,因为它将是人们首先看到的。@KurtPfeifle:作为“关于主题”的答案:试试
head(GNU coreutils)8.5
(例如Debian)。或者头部与OS X Mountain Lion一起装运。我也在那里工作。但我相信你可以找到数百个不太清楚的版本。我猜有些UNIX/Linux区甚至没有
!天啊!否决票@乔:不要惊慌。。。总的来说,总的来说,你没有得到我的反对票,只有赞成票:-)我承认我先看了被接受的答案,但我没有看到它有同样的弱点。
head -4 a.txt | tail -1
gawk -v n=3 'n==NR { print; exit }' a.txt