终端下文本操作tips

简要介绍终端下文本操作,需要通过管道|综合运用。


从文件读取行


cat


  1. 对文件中的行进行编号
    cat -n filename
    
  2. 替换空白行和制表符,-s选项用一个空白行替换多个空白行
    cat -s filename
    
    -T^I替换制表符:
    cat -T filename
    
  1. 查看word

tac


(行)反序输出

zcat


将gzip文件解压输出。

zcat filename.gz

head


输出前几行

tail


输出最后几行,与head组合可以提取任意行。

head -n5 file1| tail -n2

expand

将制表符转变为空格。


nl


显示行号,相比cat -n有更多选项。相见man nl

uniq


删除相邻的重复行。

sort


排序,-r表示反序,-n表示按数字排序,-u表示忽略相同行。其他选项请man sort

从文件提取行


grep


global regular expression printer,使用请info grep

zgrep


如同zcat

sgrep


一般不安装这个包,但在html文件中抓取节很方便。

split


分解文件。-l表示按行数分解文件,-b表示按大小分解。

csplit


分解目标模式的文件,{*}表示尽可能多的分解

csplit filename /pattern/
csplit filename /==/ {*}

使用文本文件的字段


cut


能从一行文本中得到一个或多个字段。-f选择字段,-d

cut -d: -f5,7 /etc/passwd

-c可以选择指定列

cut -c2-4 filename

paste


cut使用方法。

join


提取两个文件,行被分解为字段,并且有一字段相同(可指定),提取不同部分组合。

awk


Loading...

wc


统计单词数,换行符数,字节数。

替换文本


sed


同awk请

info sed
info awk

tr


替换或删除单个字符,-s删除列出的重复字符,-d删除列出字符。

cat file|tr e E
cat file|tr a-z A-Z
cat file|tr [:lower:] [:upper:]
cat file|tr abc efg
cat file|tr -s abc
cat file|tr -d abc

参考文献


  1. 《opensuse11.10和suse linux server宝典》
  2. man

2012年02月27日 星期一 17时57分18秒

blog comments powered by Disqus

Valid XHTML 1.0 Strict This page is Vim powered