我需要查看一些 5,200 字节宽的文件。有没有任何工具可以在不修改文件的情况下实现这一点?理想情况下,我想指定我正在查看哪些列。
答案1
如果您想要仅显示特定列(例如第 1,5 和 12 列),请使用awk
:
awk '{print $1,$5,$12}' wide_file.txt | less
awk
自动将行分割成字段并将它们分配给变量。第一个字段是$1
,第二个字段$2
等。默认情况下,它以空格分隔,如果您有不同的分隔符(例如制表符),请使用 指定它-F
:
awk -F'\t' '{print $1,$5,$12}' wide_file.txt | less
我从未使用过 Solaris,但根据这一页,默认值awk
可能不支持该-F
选项,在这种情况下您应该使用/usr/bin/nawk
或/usr/xpg4/bin/awk
。
答案2
这里有两个建议,它们都适用于大文件。 (就行大小和行数而言,大并不重要)
建议一:
cut
您可以使用和的组合less
。
使用cut
您可以通过字节位置和逻辑位置指定“列”。实际上你甚至可以使用角色位置。 (字节位置和字符位置之间的差异仅在文件包含多字节字符时才相关)。
假设您想查看每行的 1200-1270 字节,那么您可以执行以下操作:
cut -c1200-1270 wide_file.txt | less
或者如果您想查看逻辑列 33-37 那么您会这样做
cut -f33-37 wide_file.txt | less
建议2:
您也可以less
单独使用。
less
使用 -S 选项调用,如下所示
less -S wide_file.txt
然后,您可以通过执行 n + 向右箭头或 n + 向左箭头在文件中向左或向右滚动,其中“n”是要滚动的位置数。
假设您想向右滚动 2000 个位置。然后输入 2000,然后按向右箭头。瞧!