我一直在解析一些日志文件,我发现有些行太长而无法显示在一行上,所以Terminal.app将它们包装到下一行.但是,我一直在寻找一种方法来截断一定数量的字符之后的一行,以便终端不会换行,从而更容易发现模式.
我写了一个小的Perl脚本来做到这一点:
#!/usr/bin/perl die("need max length\n") unless $#ARGV == 0; while () { $_ = substr($_, 0, $ARGV[0]); chomp($_); print "$_\n"; }
但我有一种感觉,这个功能可能内置于其他一些工具(sed?),我只是不知道该用于此任务.
所以我的问题是一个相反的问题:如何在没有编写程序的情况下截断一行stdin?
管道输出到:
cut -b 1-LIMIT
LIMIT是所需的线宽.
我用来查看具有很长行的日志文件的另一种策略是将文件传递给"less -S".less的-S选项将打印行而不包装,您可以通过按右箭头键查看长行的隐藏部分.