Chinaunix首页 | 论坛 | 博客
  • 博客访问: 139275
  • 博文数量: 37
  • 博客积分: 2671
  • 博客等级: 少校
  • 技术积分: 335
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-11 13:18
文章分类

全部博文(37)

文章存档

2011年(16)

2010年(21)

我的朋友

分类: Python/Ruby

2010-10-17 00:08:11

                shell 基本命令分析 <一>
 
1. echo
synopsis
    echo [SHORT-OPTION]... [STRING]...
    echo LONG-OPTION
 
作用:echo the string(s) to standard output
常用option:
-n   取消行末换行符
-e   启用反斜线控制字符的转换   (如: \t, \n, \r, \b)
-E   关闭反斜线控制字符的转换

$ echo first line
first line
$ echo -n first line
first line $


$ echo -e "a\tb\tc\nd\te\tf"
a    b    c
d    e    f

 

2. tr

synopsis

   tr [OPTION] ... SET1 [SET2]

description

   translate, squeeze, and/or delete characters from standard input, writing to standard output.

tr用来从标准输入中通过替换或删除操作进行字符转换。主要用于删除文件中控制字符或进行字符转换。使用tr时要转换两个字符串:字符串1用于查询,字符串2用于处理各种转换。
tr刚执行时,字符串1中的字符被映射到字符串2中的字符,然后转换操作开始.

带有最常用选项的tr命令格式为:

tr -c -d -s ["string1_to_translate_from"] ["string2_to_translate_to"] inputfile

-c 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII。
-d 删除字符串1中所有输入字符。
-s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。

去除重复出现的字符

$ cat sample.txt
thisss is a sammmpllleee.

 

$tr -s [a-z] < sample.txt
this is a sample.

or

$cat sample.txt | tr -s [a-z]
this is a sample.


删除空行

$cat space.txt
first line


second line

 

$cat space.txt | tr -s "[\n]"
first line
second line


大写到小写
除了删除控制字符,转换大小写是tr最常用的功能.为此需指定即将转换的小写字符[a-z]和转换结果[A-Z].

$echo "first second." | tr [a-z] [A-Z]
FIRST SECOND.

也可以使用字符类[:lower:]和[:upper:] 

$echo "first second" | tr [:lower:] [:upper:]
FIRST SECOND

删除指定字符

$cat char.txt
one 123
two 2345
three 345622

输出保留字符,不要数字

$tr -cs "[a-z][A-Z]" "[\n*]" < char.txt
one
two
three

转换控制字符

unix中打开来自dos的文件时,会遇到如下格式的文本.

$cat -v dos.txt
this file from dos^M
I want to change it^M
^Z

使用-s 选项将^M,^Z转换成回车符.查ASCII表,^M是015,^Z是032.

$tr -s "[\015\032]" "\n" < dos.txt > unix.txt
$cat -v unix.txt
this file from dos
I want to change it

将所有Tab换空行:  tab 011, space 040

$tr -s "[\011]" "[\040*]" < tabtos.txt

[character*n]格式匹配多于一个字符

 

3. cut   - remove sections from each line of files

cut OPTION... [FILE]...


-d, --delimiter=DELEM

-f, --fields=LIST


eg: uname -r | cut -d. -f1,2

result: $2.6


4. install  - copy files and set attributes

  install [OPTION]... [-T] SOURCE DEST

 *install [OPTION]... SOURCE... DIRECTORY

  install [OPTION]... -t DIRECTORY SOURCE...

  install [OPTION]... -d DIRECTORY...


OPTION:

-[cC]  -b  -[dD]  -[tT] -p -m ...

-d, --directory

eg:     $install -d ex{1..5}     <==>  mkdir ex{1..5}


-D  create all leading components of DEST except the last, then copy SOURCE to DEST

-m, --mode=MODE 

    set permission mode (as in chmod), instead of rwxr-xr-x

-p, --preserve-timestamps  保留原文件的访问修改时间

    apply access/modification times of SOURCE files to orresponding     destination files

eg: $install -p -m 644 sample /usr/bin


-o, --owner=OWNER
    set ownership (super-user only)
-s, --strip
    strip symbol tables

-S, --suffix=SUFFIX
    override the usual backup suffix

-t, --target-directory=DIRECTORY
    copy all SOURCE arguments into DIRECTORY

-T, --no-target-directory
    treat DEST as a normal file

-g, --group=GROUP
    set group ownership, instead of process' current group


 

 

阅读(742) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-10-19 08:50:01

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com