linux中的join、paste、split、tr命令

join:
join用来将来自两个分类文本文件的行连在一起。
文本文件中的域通常由空格或 tab键分隔,但如果愿意,可以指定其他的域分隔符。一些 系统要求使用 join时文件域要少于 20,为公平起见,如果域大于 20,应使用 DBMS系统。

让我们看看它的可用选项列表:
an  n 为一数字,用于连接时从文件 n中显示不匹配行。例如, -a1显示第一个文件的不匹 配行, -a2为从第二个文件中显示不匹配行。
o n.m  n 为文件号, m为域号。 1.3表示只显示文件 1第三域,每个 n,m必须用逗号分隔, 如1.32.1。
j n m   n为文件号, m为域号。使用其他域做连接域。

t 域分隔符。用来设置非空格或 tab键的域分隔符。例如,指定冒号做域分隔符 -t:。

命令行实例:
[root@redhat script]#cat names.txt 
M.Golls 12 Hidd Rd
P.Heller The Acre
P.Willey 132 The Grove
T.Norms 84 Connaught Rd
K.Fletch 23 Woodlea
[root@redhat script]#
[root@redhat script]#cat town.txt 
M.Golls Norwich NRD
P.Willey Galashiels GDD
T.Norms Brandon BSL
K.Fletch Mildenhall MAF
[root@redhat script]#
[root@redhat script]#join names.txt  town.txt 
M.Golls 12 Hidd Rd Norwich NRD
P.Willey 132 The Grove Galashiels GDD
T.Norms 84 Connaught Rd Brandon BSL
K.Fletch 23 Woodlea Mildenhall MAF

paste:
paste将按行将不同文件行信息放在一行。缺省情况下, paste连接时,用空格或 tab键分隔 新行中不同文本,除非指定 -d选项,它将成为域分隔符。
paste格式为;
paste -d -s -file1 file2
选项含义如下:
-d   指定不同于空格或 tab键的域分隔符。例如用 @分隔域,使用 -d@。
-s   将每个文件合并成行而不是按行粘贴。
-   使用标准输入。例如 ls -l |paste ,意即只在一列上显示输出。 
命令行实例:
[root@redhat script]#cut -d: -f1 pers > pas1
[root@redhat script]#cat pas1 
P.Jones
S.Round
L.Clip
[root@redhat script]#
[root@redhat script]#cut -d: -f3 pers > pas2
[root@redhat script]#cat pas2
ID897
ID666
ID982
[root@redhat script]#
[root@redhat script]#paste pas1 pas2
P.JonesID897
S.RoundID666
L.ClipID982
split:
split用来将大文件分割成小文件。有时文件越来越大,传送这些文件时,首先将其分割可 能更容易。使用 vi或其他工具诸如 sort时,如果文件对于工作缓冲区太大,也会存在一些问题。 因此有时没有选择余地,必须将文件分割成小的碎片。
split命令一般格式:
split -output_file-size input-filename output-filename

这里output-file-size指的是文本文件被分割的行数。 split查看文件时, output-file-size选项 指定将文件按每个最多 1000行分割。如果有个文件有 2800行,那么将分割成 3个文件,分别有10001000800行。每个文件格式为 x[aa]到x[zz],x为文件名首字母, [aa]、[zz]为文件名剩 余部分顺序字符组合。
[root@redhat split]#cat split1 
this is line1
this is line2
this is line3
this is line4
this is line5
this is line6
[root@redhat split]#split -2 split1 
[root@redhat split]#ll
总用量 16
-rwxrwxrwx  1 root root 84 2011/12/07 07:04:20 split1
-rw-r--r--  1 root root 28 2011/12/07 07:06:46 xaa
-rw-r--r--  1 root root 28 2011/12/07 07:06:46 xab
-rw-r--r--  1 root root 28 2011/12/07 07:06:46 xac
[root@redhat split]#
[root@redhat split]#cat xaa && echo ======= && cat xab && echo ======= && cat  xac
this is line1
this is line2
=======
this is line3
this is line4
=======
this is line5
this is line6
tr:
tr用来从标准输入中通过替换或删除操作进行字符转换。 tr主要用于删除文件中控制字符 或进行字符转换。
使用 tr时要转换两个字符串:字符串 1用于查询,字符串2用于处理各种转换。 tr刚执行时,字符串 1中的字符被映射到字符串 2中的字符,然后转换操作开始。
指定字符串 1或字符串 2的内容时,只能使用单字符或字符串范围。
命令格式为:
tr-c-d-s["string1_to_translate_from"]["string2_to_t riannpsulta_te_to" ]
file
这里:
-c   用字符串 1中字符集的补集替换此字符集,要求字符集为 ASCII。
-d   删除字符串 1中所有输入字符。
-s   删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。
Input-file是转换文件名。虽然可以使用其他格式输入,但这种格式最常用。

字符范围:
[a-z]a-z内的字符组成的字符串。 
[A-Z]   A-Z内的字符组成的字符串。 
[0-9]数字串。
/octal   一个三位的八进制数,对应有效的 ASCII字符。
[O*n]   表示字符 O重复出现指定次数 n。因此 [O*2]匹配OO的字符串。 大部分 tr变种支持字符类和速记控制字符。字符类格式为 [:class],包含数字、希腊字母、空行、小写、大写、 cntrl键、空格、点记符、图形等等。

tr中特定控制字符的不同表达方式:
速记符含义八进制方式
\aCtrl-G 铃声 \007
\bCtrl-H 退格符 \010
\fCtrl-L 走行换页\014
\nCtrl-J 新行 \012
\rCtrl-M 回车 \015
\t      Ctrl-I tab键    \011
\vCtrl-X        \030
命令行实例:(无转换控制字符的例子)
[root@redhat script]#cat oops.txt 
And the cowwwwws went homeeeeeee
Or did theyyyy
[root@redhat script]#tr -s "[a-z]" < oops.txt 
And the cows went home
Or did they
[root@redhat script]#
[root@redhat script]#tr -s "[A-Z]" < oops.txt 
And the cowwwwws went homeeeeeee
Or did theyyyy
[root@redhat script]#
[root@redhat script]#cat oops.txt | tr -s "[a-z]" 
And the cows went home
Or did they
[root@redhat script]#
[root@redhat script]#cat oops.txt 
And the cowwwwws went homeeeeeee


Or did theyyyy




ssssssssssssssssssssssssssssss
dd






11111111111111111111111111
[root@redhat script]#
[root@redhat script]#tr -s ["\n"] < oops.txt 
And the cowwwwws went homeeeeeee
Or did theyyyy
ssssssssssssssssssssssssssssss
dd
11111111111111111111111111
[root@redhat script]#echo "May Day,May Day,Going Down..." | tr "[:upper:]" "[:lower:]"
may day,may day,going down...
[root@redhat script]#
[root@redhat script]#echo "monday123" | tr -c "[a-z]" "[\012*]"
monday






You have new mail in /var/spool/mail/root
[root@redhat script]#
[root@redhat script]#echo "monday12" | tr -c "[a-z]" "[\012*]"
monday




[root@redhat script]#echo "monday1" | tr -c "[a-z]" "[\012*]"
monday


[root@redhat script]#echo "monday" | tr -c "[a-z]" "[\012*]"
monday
[root@redhat script]#
[root@redhat script]#echo "0000 hdisk5" | tr "[0*4]" "-"
---- hdisk5
原文:http://www.tuicool.com/articles/3AZf2q
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
linux命令大全,文版本 Linux命令大全(修改版) 进行重新编译的说明 文件传输 bye ftp ftpcount ftpshut ftpwho ncftp tftp uucico uucp uupick uuto 备份压缩 ar bunzip2 bzip2 bzip2recover compress cpio dump gunzip gzexe gzip lha restore tar unarj unzip zip zipinfo 文件管理 diff diffstat file find git gitview ln locate lsattr mattrib mc mcopy mdel mdir mktemp mmove mread mren mshowfat mtools mtoolstest mv od paste patch rcp rhmask rm slocate split tee tmpwatch touch umask whereis which cat chattr chgrp chmod chown cksum cmp cp cut indent 磁盘管理 cd df dirs du edquota eject lndir ls mcd mdeltree mdu mkdir mlabel mmd mmount mrd mzip pwd quota quotacheck quotaoff quotaon repquota rmdir rmt stat tree umount 磁盘维护 badblocks cfdisk dd e2fsck ext2ed fdisk fsck.ext2 fsck fsck.minix fsconf hdparm losetup mbadblocks mformat mkbootdisk mkdosfs mke2fs mkfs.ext2 mkfs mkfs.minix mkfs.msdos mkinitrd mkisofs mkswap mpartition sfdisk swapoff swapon symlinks sync 系统设置 alias apmd aumix bind chkconfig chroot clock crontab declare depmod dircolors dmesg enable eval export fbset grpconv grpunconv hwclock insmod kbdconfig lilo liloconfig lsmod minfo mkkickstart modinfo modprobe mouseconfig ntsysv passwd pwconv pwunconv rdate resize rmmod rpm set setconsole setenv setup sndconfig SVGAText Mode timeconfig ulimit unalias unset 系统管理 adduser chfn chsh date exit finger free fwhois gitps groupdel groupmod halt id kill last lastb login logname logout logrotate newgrp nice procinfo ps pstree reboot renice rlogin rsh rwho screen shutdown sliplogin su sudo suspend swatch tload top uname useradd userconf userdel usermod vlock w who whoami whois 文档编辑 col colrm comm csplit ed egrep ex fgrep fmt fold grep ispell jed joe join look mtype pico rgrep sed sort spell tr uniq wc 网络通讯 dip getty mingetty ppp-off smbd(samba daemon) telnet uulog uustat uux cu dnsconf efax httpd ifconfig mesg minicom nc netconf netconfig netstat ping pppstats samba setserial shapecfg(shaper configuration) smbd(samba daemon) statserial(status ofserial port) talk tcpdump testparm(te

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值