Linux 下查看大文件内容

in with 0 comment
Head/Tail  
head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾啰~,看看下面的范例:  
## (1) displays the first 6 lines of a file  
head -6 readme.txt  
## (2) displays the last 25 lines of a file  
tail -25 mail.txt  
范例一是显示档案的前 6 行,范例二则是显示档案最后的 25 行。  
而下面的范别,结合了 head 与 tail 的指令,显示档案的第 11 行到第 20 行:  
# (3)  
head -20 file | tail -10  
在 tail 的使用手册页中显示了比 head 还多的可用参数,其中有一个很好用的参数 " -f ",使用此参数时,tail 不会回传结束信号,除非我们去自行去中断它;相反的,它会一直等待一段时间,一直到他发现资料自它最后一次被读取后,又被加入新的一行时:  
## (4) display ongoing updates to the given  
## log file  
tail -f /usr/tmp/logs/daemon_log.txt  
上述范例可以动态显示该 log 文件的动态更新。  
假设该服务程序是一直不断的加入动态资料到 /usr/adm/logs/daemon_log.txt 的 log 文件里,在命令列控制窗口中使用 tail -f,它将会以一定的时间实时追踪该档的所有更新。 ( -f 的只有在其输入为档案时才能使用 )。  
假如你在 tail 后下了多个档案参数,你便能在同一个窗口内一次追踪数个 log 檔:  
## track the mail log and the server error log  
## at the same time.  
tail -f /var/log/mail.log /var/log/apache/error_log  
tac -- 反过来串连?!  
cat 倒过来怎么拼 ? 对啦 !! 这就是 tac 的功能啰 ~ 它是把档案的顺序内容反过来串连用的,那么 ~ 它都用在什么状况下呢 ? 任何须要以后进先出的顺序重新排列组件的工作都用得上它 ! 以下面的指令来说,便是以自最后建立的到最先建立的顺序,列出三个最新建的使用者帐号:  
# (5) last 3 /etc/passwd records - in reverse

$ tail -3 /etc/passwd | tac  
curly:x:1003:100:3rd Stooge:/homes/curly:/bin/ksh  
larry:x:1002:100:2nd Stooge:/homes/larry:/bin/ksh  
moe:x:1001:100:1st Stooge:/homes/moe:/bin/ksh  
nl -- 为输出列加上编号  
nl 是一个简单但很好用的编号过滤工具,我在输入的地方下了参数,让所有行列的编码皆靠左,nl 是供了非常多的参数使用,可以定义到很细很细的程序来制定它下好编号的输出,下面是一些参数使用的范例说明:  
# (6) Display the first 4 entries of the password  
# file - numbers to be three columns wide and  
# padded by zeros.  
$ head -4 /etc/passwd | nl -nrz -w3  
001 root:x:0:1:Super-User:/:/bin/ksh  
002 daemon:x:1:1::/:  
003 bin:x:2:2::/usr/bin:  
004 sys:x:3:3::/:  
#  
# (7) Prepend ordered line numbers followed by an  
# ’=’ sign to each line -- start at 101.  
$ nl -s= -v101 Data.txt  
101=1st Line ...  
102=2nd Line ...  
103=3rd Line ...  
104=4th Line ...  
105=5th Line ...  
.......  
fmt -- 格式化  
fmt 是一个简单的文字格式化工具,它重点是在让文字的资料与最大所能支持的宽度一致,它是利用结合及截断行列的空白所完成的。前提是你需要维护的是一个由文书处理器所产生的文字内容,它所输出的文字可能含括了各种不同长度的行列,若这样的文字是由文字编辑器 ( 像是 vi ) 作的,fmt 便能够将此原始文字转化成更好维护的格式。下面的第一个例子,显示的是下 fmt 指令来重新制作档案格式,让它一行不要超过 80 个字符:  
# (8) No more than 60 char lines  
$ fmt -w 60 README.txt > NEW_README.txt  
#  
# (9) Force uniform spacing:  
# 1 space between words, 2 between sentences  
$ echo "Hello World. Hello Universe." |  
fmt -u -w80  
Hello World. Hello Universe.  
fold -- 将输入分段  
fold 跟 fmt 很像,但他通常是用来格式化与非增加文字可读性的资料,下面有个简单的例子:  
# (10) Format text in 3 column width lines  
$ echo oxoxoxoxo | fold -w3  
oxo  
xox  
oxo  
# (11) Parse by triplet-char strings -  
# search for ’xox’  
$ echo oxoxoxoxo | fold -w3 | grep "xox"  
xox  
# (12) One way to iterate through a string of chars  
$ for i in $(echo 12345 | fold -w1)  
> do  
> ### perform some task ...  
> print $i  
> done  
1  
2  
3  
4  
5  
tr  
tr 为一个简单的字组转换器,它的实际应用与一些较复杂的程序有点重复,像是 sed 和 awk [ 更大型的二进制程序代码 ]。tr 在文字的置换、删从及增加上很好用。它的指令模式是 " 从 ( 放在第一个参数 ) …到 ( 第二个参数 )… " 的模式;下面为它一般的使用语法:

# (13) tr usage  
tr [options] "set1" ["set2"]
Comments are closed.