分享

Coreutils

 云将东游 2015-08-13

分类: 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 把开头的空格转换成,默认下8个空格算一个
# unexpand -a foo 把所有的空格转换成,默认下8个空格算一个
# unexpand -a -t 1 foo 把所有的空格转换成,1个空格算一个tab

【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=100 skip=1
“组合与“bs=1 skip=100“组合的效果是一样的,
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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多