如何仅用单条grep命令显示文件第三行(禁用指定工具与符号)
仅用grep提取文件第三行的正确方法
你之前的grep -w "3" filename.txt是用来匹配包含独立单词"3"的行,和定位文件第三行的需求完全不符,所以无法生效。
要仅通过grep命令实现提取第三行的目标,可以利用grep的行号标记功能,结合管道组合多个grep实例完成:
grep -n "" filename.txt | grep "^3:" | grep -oP "(?<=^3:).*"
各部分作用:
grep -n "" filename.txt:为文件每一行添加行号:内容的前缀,方便定位行位置grep "^3:":精准匹配出行号为3的那一行grep -oP "(?<=^3:).*":通过Perl兼容正则的正向预查,只提取行号前缀之后的内容,去掉行号和冒号
如果你的grep版本不支持-P参数(比如BSD系统自带的grep),可以改用以下命令:
grep -n "" filename.txt | grep "^3:" | grep -o "[^:].*"
这个命令通过匹配非冒号开头的内容,间接去掉行号前缀,同样能得到第三行的纯内容。
内容的提问来源于stack exchange,提问作者Imane
相关产品推荐
相关产品推荐

