Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2421257
  • 博文数量: 401
  • 博客积分: 12926
  • 博客等级: 上将
  • 技术积分: 4567
  • 用 户 组: 普通用户
  • 注册时间: 2009-02-22 14:51
文章分类

全部博文(401)

文章存档

2015年(16)

2014年(4)

2013年(12)

2012年(82)

2011年(98)

2010年(112)

2009年(77)

分类:

2009-07-07 16:17:06

cut命令用于将文件中的某个字段剪切下来

-cRANGE  将在RANGE中指定的字符剪切掉
-dCHARACTER   指定字段定界符为CHARACTER
-fRANGE  将RANGE中的字段剪切掉


bigfish@wangyu-desktop:tmp $ cat test1.txt
AAAAA: EEEEE
BBBBB: FFFFF
CCCCC: GGGGG
DDDDD: HHHHH

剪切每行的第一个字符
bigfish@wangyu-desktop:tmp $ cut -c1 test1.txt
A
B
C
D

剪切每行的1-3和5-8个字符
bigfish@wangyu-desktop:tmp $ cut -c1-3,5-8 test1.txt
AAAA: E
BBBB: F
CCCC: G
DDDD: H

将每行的第二个字段切掉,字段分割符为:
bigfish@wangyu-desktop:tmp $ cut -d: -f2 test1.txt
 EEEEE
 FFFFF
 GGGGG
 HHHHH

paste命令可以按顺序将给定文件相应行的各行一一输出,各个文件的内容之间以制表符分开,以新的一行作为结束。
bigfish@wangyu-desktop:tmp $ cat test1.txt
AAAAA: EEEEE
BBBBB: FFFFF
CCCCC: GGGGG
DDDDD: HHHHH

bigfish@wangyu-desktop:tmp $ cat test2.txt
11111
22222
33333
44444

bigfish@wangyu-desktop:tmp $ paste test1.txt test2.txt
AAAAA: EEEEE    11111
BBBBB: FFFFF    22222
CCCCC: GGGGG    33333
DDDDD: HHHHH    44444

bigfish@wangyu-desktop:tmp $ paste -d! test1.txt test2.txt
AAAAA: EEEEE!11111
BBBBB: FFFFF!22222
CCCCC: GGGGG!33333
DDDDD: HHHHH!44444

sed是流编辑器。

bigfish@wangyu-desktop:tmp $ cat test1.txt
AAAAA: EEEEE
BBBBB: FFFFF
CCCCC: GGGGG
DDDDD: HHHHH

bigfish@wangyu-desktop:tmp $ cat test1.txt | sed -e "s/AAAAA/KKKKK/g" -e "/GGGGG/d"
KKKKK: EEEEE
BBBBB: FFFFF
DDDDD: HHHHH


下面from:http://www.diybl.com/course/3_program/shell/shelljs/200862/119686_2.html

tr命令转换字符

标志


-A 使用范围和字符类 ASCII 整理顺序、一个字节一个字节地执行所有操作,而不是使用当前语言环境整理顺序。
-C 指定 String1 值用 String1 所指定的字符串的补码替换。String1 的补码是当前语言环境的字符集中的所有字符,除了String1 指定的字符以外。如果指定了 -A-c 标志都已指定,则与所有 8 位字符代码集合有关的字符将被补足。如果指定了 -c-s 标志,则 -s 标志适用于 String1 的补码中的字符。

如果没有指定 -d 选项,则由 String1 指定的字符的补码将放置到升序排列的数组中(如 LC_COLLATE 的当前设置所定义)。

-c 指定 String1 值用 String1 所指定的字符串的补码替换。String1 的补码是当前语言环境的字符集中的所有字符,除了String1 指定的字符以外。如果指定了 -A-c 标志都已指定,则与所有 8 位字符代码集合有关的字符将被补足。如果指定了 -c-s 标志,则 -s 标志适用于 String1 的补码中的字符。

如果没有指定 -d 选项,则由 String1 指定的值的补码将放置到通过二进制值升序排列的数组中。

-d 从标准输入删除包含在由 String1 指定的字符串中的每个字符。
注:
  1. -C 选项和 -d 选项一起指定时,将删除所有除 String1 指定的那些字符以外的字符。忽略 String2 的内容,除非也指定了 -s 选项。
  2. -c 选项和 -d 选项一起指定时,将删除所有除 String1 指定的那些字符以外的字符。忽略 String2 的内容,除非也指定了 -s 选项。
-s 在重复字符序列中除去除第一个字符以外的所有字符。将 String1 所指定的字符序列在转换之前从标准输入中除去,并将 String2 所指定的字符序列从标准输出中除去。
String1 指定一个字符串。
String2 指定一个字符串。

退出状态

该命令返回以下出口值:


0 所有输入处理成功。
>0 产生错误。

示例


  1. 若要将大括号转换为小括号,请输入:
    tr '{}' '()' < textfile > newfile

    这便将每个 {(左大括号)转换成 ((左小括号),并将每个 }(右大括号)转换成 )(右小括号)。所有其它的字符都保持不变。

  2. 若要将大括号转换成方括号,请输入:
    tr '{}' '\[]' < textfile > newfile

    这便将每个 {(左大括号)转换成 [(左方括号),并将每个 }(右大括号)转换成 ](右方括号)。左方括号必须与一个 "\"(反斜扛)转义字符一起输入。

  3. 若要将小写字符转换成大写,请输入:
    tr 'a-z' 'A-Z' < textfile > newfile
  4. 若要创建一个文件中的单词列表,请输入:
    tr -cs '[:lower:][:upper:]' '[\n*]' < textfile > newfile

    这便将每一序列的字符(除大、小写字母外)都转换成单个换行符。*(星号)可以使 tr 命令重复换行符足够多次以使第二个字符串与第一个字符串一样长。

  5. 若要从某个文件中删除所有空字符,请输入:
    tr -d '\0' < textfile > newfile
  6. 若要用单独的换行替换每一序列的一个或多个换行,请输入:
    tr -s '\n' <&



阅读(1750) | 评论(0) | 转发(0) |
0

上一篇:英语语法大全

下一篇:wget usage

给主人留下些什么吧!~~