1:cut [选项] 文件名
选项:
-f 列号: 提取第几列
-d 分隔符: 按照指定分隔符分割列
-c 字符范围: 不依赖分隔符来区分列,而是通过字符范围(行首为 0)来进行字段提取。“n-”表示从第 n 个字符到行尾;“n-m”从第 n 个字符到第 m个字符;“-m”表示从第 1 个字符到第 m 个字符。cut 命令的默认分隔符是制表符,也就是“tab”键。
3:sed
sed 主要是用来将数据进行选取、替换、删除、新增的命令.
直接用命令对文件进行修改并不是vi进行编辑。
-n: 一般 sed 命令会把所有数据都输出到屏幕,如果加入此选择,则只会把经过 sed 命令处理的行输出到屏幕。
-e: 允许对输入数据应用多条 sed 命令编辑。
-f 脚本文件名: 从 sed 脚本中读入 sed 操作。和 awk 命令的-f 非常类似。
-r: 在 sed 中支持扩展正则表达式。
-i: 用 sed 的修改结果直接修改读取数据的文件,而不是由屏幕输出动作:
a : 追加,在当前行后添加一行或多行。添加多行时,除最后 一行外,每行末尾需要用“”代表数据未完结。
c : 行替换,用 c 后面的字符串替换原数据行,替换多行时,除最后一行外,每行末尾需用“”代表数据未完结。
i : 插入,在当期行前插入一行或多行。插入多行时,除最后 一行外,每行末尾需要用“”代表数据未完结。
d: 删除,删除指定的
p: 打印,输出指定的行。
s: 字串替换,用一个字符串替换另外一个字符串。格式为“行范围 s/旧字串/新字串/g”(和 vim 中的替换格式类似)
sed 所做的修改并不会直接改变文件的内容(如果是用管道符接收的命令的输出,这种情况连文件都没有),而是把修改结果只显示到屏幕上,除非使用“-i”选项才会直接修改文件。
例子:
(1) 行操作
sed '2p' student.txt 屏幕显示2行数据
(2)只显示-n 只显示第二行
sed -n '2p' student.txt
(3)删除2,4行数据
sed '2,4d' student.txt
(4)在第二行后面添加指定的字符串
sed '2a ddddddd' student.txt
(1) 在第二行前面添加制定的字符串
sed "2i heeeeeee" student.txt
(2) 行首替换为#
sed '4s/^/#/g' student.txt
3:字符处理命令
(1) 排序 sort命令
-f: 忽略大小写
-b: 忽略每行前面的空白部分
-n: 以数值型进行排序,默认使用字符串型排序 //数值排序
-r: 反向排序
-u: 删除重复行。就是 uniq 命令
-t: 指定分隔符,默认是分隔符是制表符
-k n[,m]: 按照指定的字段范围排序。从第 n 字段开始,m 字段结束(默认到行尾)
sort -n -r student.txt //按照字符数值降序排列
sort -n -t ":" -k 3,3 /etc/passwd
当然“-k”选项可以直接使用“-k 3”,代表从第三字段到行尾都排序(第一个字符先排序,如果一致,第二个字符再排序,知道行尾)。
(2) uniq去除重复行
(3) 统计命令 wc
wc –l 统计行数