Coreutils - Linux核心工具笔记
2007-12-15 20:35:41
分类: LINUX
【Coreutils】cat -----除了显示文件内容、here方式创建、追加文件以外,还有其它功能 # cat -b foo 为文本加行号,不计算空行 # cat -n foo 为文本加行号,计算空行 # cat -s foo 将文本中的多空行变为单空行 # cat foo | col -x 把所有 【Coreutils】nl -----为文本加行号 # nl foo (不计算空行) # nl -ba foo (计算空行) # nl -v 2 -i 5 foo (不计算空行,从2开始,5步一进) # nl -b p'^\#' foo (不计算空行,为所有以#开头的行加行号) # nl -w3 -nrz -ba foo (计算空行,行号为三位数字,前面补0) 【Coreutils】expand -----把 # expand foo 把所有 # expand -i foo 把开头的 【Coreutils】unexpand -----把空格转换成 # unexpand foo 把开头的空格转换成 # unexpand -a foo 把所有的空格转换成 # unexpand -a -t 1 foo 把所有的空格转换成 【Coreutils】fmt -----间距调整 # fmt -u foo 统一文本中文字的间距 【Coreutils】uniq ----- 重复行与非重复行 如果直接加文件作参数,那么在输出中会看到所有相邻的重复行都会变成一行,而所有的非重复行则不变。 如果-u,那么所有相邻的重复行都不会输出,只会输出非重复行。 如果-d,那么所有的非重复行都不会输出,只会以不重复的方式输出重复行。 如果-dc,将会在上面的基础上显示重复的次数。 因为uniq的功能只是针对“相邻的重复行”而言,因此,我们会经常把它放在用sort排序后的管道后面,以便在忽略“相邻”这一前提的情况下对文本中的所有的重复行进行处理,比如: # xargs -n1 < foo | sort | uniq -dc 【Coreutils】join -----合并两个文件的某些内容,条件是在每行的行首必须有相同的行标志。 第一个文件file1: A Ubuntu B Fedora C Mint D openSUSE 第二个文件file2: A best B excellent C very good D good 第三个文件file2: A ^-^ B @-@ C <- -> D * * # join file1 file2 合并两个文件 A Ubuntu best B Fedora excellent C Mint very good D openSUSE good # join file1 file2 | join - file3 合并三个文件 A Ubuntu best ^-^ B Fedora excellent @-@ C Mint very good <- -> D openSUSE good * * 合并第一个文件的第二列与第二个文件的第三列: # join -o 1.2 -o 2.3 file1 file2 【Coreutils】split -----文件切分 -l指定单个输出文件的行数,-b指定单个输出文件的字节数,以一首mp3为例 # split -b2m 20082271913320032.mp3 part. 指定了文件大小为2m,最后一个参数是输出文件的前缀名称(默认是x),这样切分以后,可以看到这首mp3被切成4份 # ls 20082271913320032.mp3 part.aa part.ab part.ac part.ad 切分的文件可以用cat还原。 【Coreutils】stty ----- 终端设置 # stty -a 查看当前键设置 # stty erase ^? 键设置 # stty column 80 宽设置 # stty sane 恢复默认值 【Coreutils】du ----- 估算文件占用空间 # du -h 各分区总体占用情况,使用频率相当高的一个命令 # du -cks * | sort -rn | head -10 当前目录下占用空间最大的头10位文件或文件夹。 【Coreutils】dd ----- 文件的拷贝与转换 if=输入文件,out=输出文件, 读写块bs大小默认值为512,可以用ibs=和obs=来改变这个默认值,bs=同时改变两样, skip=从磁盘起始处跳跃多少个ibs到达文件的开端,seek=跳跃多少个obs ... , “组合与“bs=1 skip=1 00“组合的效果是一样的,count=从文件起始处跳跃多少个bs到达文件的末尾。 【Coreutils】expr ----- 简单的计算、字符串处理 # expr 2 + 3 数字与运算符中间要有空格才能打出计算结果 5 # expr 3 \* 7 乘法符号要用转义符 21 # a=21 可以处理变量 # expr $a / 3 7 # expr substr "shanghai 2010" 6 8 字串截取 hai 2010 # expr length "shanghai 2010" 字串长度 13 # expr index "shanghai 2010" 1 在字串中找到某字符第一次出现的位置 12 |
|