Linux命令:tr和xargs

目录

一、理论

1.tr

2.xargs

二、实验

1.tr

2.xargs


一、理论

1.tr

(1)概念

 tr主要用于转换或删除文件中的字符。

(2)语法

语法:tr [-d/-c/-s] [字符串1] [字符串2] 文件名
注:字符串1用于查询,字符串2用于处理各种转换

(3)常用选项

表1 tr常用选项

选项功能
-c反选设定字符;用字符串1中字符集的补集替换此字符集,要求字符集为ASCII
-d删除字符串1中所有输入字符
-s缩减连续重复字符成指定的单个字符,最常用的是 tr -s " ",表示把说有字符串中出现的所有连续空格替换成一个

2.xargs

(1)概念

find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部
注:xargs要处理的文件如果不是在结尾,需要加上 -i这个参数;否则就不用加-i参数

(2)常用选项

xargs的默认命令是echo,空格是默认定界符。 默认替换符号是{}

表2 xargs常用选项

选项功能
-n次数,将xargs生成的命令行参数,每次传递几个参数给其后面的命令执行
-d自定义定界符
-p会提示让你确认是否执行后面的命令,y执行,n不执行

二、实验

1.tr

(1)将字符串中所有连续的\n转换成一个\n

[root@centos2 /]# echo -e "1\n\n2\n\n3" | tr -s "\n"
1
2
3

同时进行替换多个字符:把字符串中出现的连续的空格oa进行转换成一个空格oa

[root@centos2 /]# echo "hellooo      shellaaa  " | tr -s "[ oa]"
hello shella 

(2)删除字符串中所有的\n

[root@centos2 /]# echo -e "1\n\n2\n\n3" | tr -d "\n"
123[root@centos2 /]# 

(3)将字符串中的某个字符转换成另一个字符,也可以多个字符同时转换

[root@centos2 /]# echo "hello" | tr "h" "H"
Hello
[root@centos2 /]# echo "hello" | tr "hl" "HL"
HeLLo

可以边把连续的字符转成一个字符再进行转换成另一个字符

[root@centos2 /]# echo "hello" | tr -s "l" "L"
heLo
[root@centos2 /]# echo "2023       06  01" |tr -s ' ' '-'
2023-06-01

(4)过滤出只出现某些字符:-d删除 -c 反选

过滤出全是数字的,最后不换行

[root@centos2 /]# echo "abcd1234567" | tr -dc "0-9"
1234567[root@centos2 /]# 

过滤出全是小写字母的,最后不换行

[root@centos2 /]# echo "abcd1234567" | tr -dc "a-z"
abcd[root@centos2 /]# 

过滤出全是大写字母的,最后不换行

[root@centos2 /]# echo "ABCDabcd1234567" | tr -dc "A-Z"
ABCD[root@centos2 /]# 

2.xargs

(1)多行内容的单输出且每行3个

[root@centos2 /]# cat /etc/passwd | xargs -n 3
root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP
User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin systemd-network:x:192:192:systemd
Network Management:/:/sbin/nologin dbus:x:81:81:System
message bus:/:/sbin/nologin polkitd:x:999:997:User
for polkitd:/:/sbin/nologin abrt:x:173:173::/etc/abrt:/sbin/nologin
libstoragemgmt:x:998:995:daemon account for
libstoragemgmt:/var/run/lsm:/sbin/nologin rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
colord:x:997:994:User for colord:/var/lib/colord:/sbin/nologin
……

(2)查找某个目下录下的普通文件,然后使用xargs命令来测试它们分别属于哪类文件

[root@centos2 /]# find /opt -user root -type f | xargs file {}
{}:            cannot open (No such file or directory)
/opt/host.txt: ASCII text
/opt/file.txt: ASCII text

(3)查找文件并复制到别的地方
find命令就可以完成:复制到某个目录

[root@centos2 /]#  find /opt -type f -exec cp -a {} /data2 \;
[root@centos2 /]# ls /data2
file.txt  host.txt

使用find+xargs命令完成:意思是复制到这个文件

[root@centos2 opt]#  find /opt/*.sh -type f | xargs -i cp {} /data2
[root@centos2 opt]# ls /data2
a.sh

(4)过滤出某个目录下的文件中含有root字符

[root@centos2 opt]#  find /etc/passwd -type f | xargs grep "root"
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

(5)xargs的-p参数的使用:会提示是否执行后面的命令

y为是,n为否

[root@centos2 opt]#  find /opt/*.sh -type f | xargs -i -p cp {} /data2
cp /opt/a.sh /data2 ?...y
[root@centos2 opt]# ls /data2
a.sh

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用方法,解压到本地目录,配置path,即可在dos下使用linux命令。 windows下能直接执行的linux命令,基本包括日常所有,如:[.exe grolbp.exe regtool.exe a2p.exe grolj4.exe rm.exe a2p5.10.0.exe grops.exe rmdir.exe addftinfo.exe grotty.exe rmt.exe addr2line.exe gzip.exe run.exe alternatives.exe head.exe runcon.exe ar.exe hostid.exe rxvt.exe arch.exe hostname.exe scp.exe as.exe hpftodit.exe sdiff.exe ascii.exe i686-pc-cygwin-gcc-3.4.4.exe sed.exe ash.exe i686-pc-cygwin-gcc-3.exe semstat.exe awk.exe i686-pc-cygwin-gcc.exe semtool.exe banner.exe id.exe seq.exe base64.exe indxbib.exe setfacl.exe basename.exe info.exe setmetamode.exe bash.exe infokey.exe sftp-server.exe bigram.exe install-info.exe sftp.exe bunzip2.exe install.exe sh.exe bzcat.exe ipcrm.exe sha1sum.exe bzip2.exe ipcs.exe sha224sum.exe bzip2recover.exe join.exe sha256sum.exe c++filt.exe kill.exe sha384sum.exe cat.exe ld.exe sha512sum.exe cc-3.exe less.exe shmtool.exe cc.exe lessecho.exe shred.exe chcon.exe lesskey.exe shuf.exe chgrp.exe link.exe size.exe chmod.exe lkbib.exe sleep.exe chown.exe ln.exe soelim.exe chroot.exe locate.exe sort.exe cksum.exe login.exe split.exe cmp.exe logname.exe ssh-add.exe code.exe lookbib.exe ssh-agent.exe comm.exe lpr.exe ssh-keygen.exe conv.exe ls.exe ssh-keyscan.exe cp.exe make.exe ssh-keysign.exe cpp-3.exe makeinfo.exe ssh.exe cpp.exe man.exe sshd.exe crypt.exe man2html.exe ssp.exe csplit.exe manpath.exe stat.exe cut.exe md5sum.exe strace.exe cygcheck.exe mkdir.exe strings.exe cygpath.exe mkfifo.exe strip.exe cygrunsrv.exe mkgroup.exe stty.exe cygserver.exe mknod.exe su.exe cygstart.exe mkpasswd.exe sum.exe d2u.exe mkshortcut.exe svn.exe date.exe mktemp.exe svnadmin.exe dd.exe mount.exe svndumpfilter.exe df.exe msgtool.exe svnlook.exe diff.exe mv.exe svnsync.exe diff3.exe nc.exe svnversion.exe dir.exe ngettext.exe sync.exe dircolors.exe nice.exe tac.exe dirname.exe nl.exe tail.exe dlltool.exe nm.exe tar.exe dllwrap.exe nohup.exe tbl.exe dos2unix.exe objcopy.exe tee.exe du.exe objdump.exe test.exe dump.exe od.exe texindex.exe dumper.exe oldfind.exe tfmtodit.exe echo.exe openssl.exe touch.exe editrights.exe passwd.exe tr.exe egrep.exe paste.exe troff.exe env.exe pathchk.exe true.exe envsubst.exe peflags.exe tsort.exe eqn.exe perl.exe tty.exe expand.exe perl5.10.0.exe u2d.exe expr.exe pfbtops.exe umount.exe factor.exe pgawk-3.1.6.exe uname.exe false.exe pgawk.exe unexpand.exe fgrep.exe pic.exe uniq.exe find.exe pinky.exe unix2dos.exe fmt.exe post-grohtml.exe unlink.exe fold.exe pr.exe unprotoize-3.exe frcode.exe pre-grohtml.exe unprotoize.exe gawk-3.1.6.exe printenv.exe users.exe gawk.exe printf.exe vdir.exe gcc-3.exe protoize-3.exe vim.exe gcc.exe protoize.exe wc.exe gcov-3.exe ps.exe which.exe gcov.exe ptx.exe who.exe getclip.exe putclip.exe whoami.exe getfacl.exe pwd.exe windmc.exe gettext.exe ranlib.exe windres.exe gkill.exe readelf.exe xargs.exe gprof.exe readlink.exe xmlwf.exe grep.exe readshortcut.exe xxd.exe grn.exe realpath.exe yes.exe grodvi.exe rebase.exe zdump.exe groff.exe refer.exe zic.exe

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值