命令“打印所有以开头的行”[关闭]
Posted
技术标签:
【中文标题】命令“打印所有以开头的行”[关闭]【英文标题】:Command "Print All Lines Starting With" [closed] 【发布时间】:2012-09-16 04:20:15 【问题描述】:我正在寻找一个打印以字符串开头的行的 perl 命令。例如,如果我想打印以“1234”开头的所有行,该命令会是什么样子?赛德?啊?格雷普?
【问题讨论】:
【参考方案1】:perl -ne 'print if /^1234/'
或
sed -ne '/^1234/p'
或
awk '/^1234/'
或
grep '^1234'
或
ruby -ne 'print if /^1234/'
甚至
python -c 'import fileinput;print "\n".join([l for l in fileinput.input() if l.startswith("1234")])'
【讨论】:
哦,蟒蛇真漂亮python -c 'import sys; [sys.stdout.write(l) for l in sys.stdin if l.startswith("1234")]'
-- 可能稍微不那么病态,但显然 Python 并不是要取代 grep :)
感谢@Eevee 的改进。当然,使用 sys.stdin 不会让您在命令行末尾指定文件列表,就像我的答案中的其余条目那样... :) 但是,是的,这绝对不是 Python 的利基。
【参考方案2】:
perl -ne'print if /^1234/' file
但大多数人会使用grep
。
grep ^1234 file
或在 Windows 上
findstr /r ^1234 file
【讨论】:
【参考方案3】:完成:
sed -ne '/^1234/p' somefile
awk '/^1234/print' somefile
grep '^1234' somefile
【讨论】:
print
是 awk 的默认操作,因此您只需要 /^1234/
部分。以上是关于命令“打印所有以开头的行”[关闭]的主要内容,如果未能解决你的问题,请参考以下文章