linux-字符替换

tr

##把输出的信息中的小写换成大写

root@localhost tmp# last | tr 'a-z' 'A-Z'

ROOT PTS/0 :0 MON DEC 29 08:09 STILL LOGGED IN

ROOT :0 :0 MON DEC 29 08:08 STILL LOGGED IN

(UNKNOWN :0 :0 MON DEC 29 06:48 - 08:08 (01:20)

REBOOT SYSTEM BOOT 3.10.0-123.EL7.X MON DEC 29 14:47 - 08:21 (-6:-25)

ROOT PTS/0 :1 THU DEC 25 07:52 - 09:20 (01:28)

ROOT :1 :1 THU DEC 25 06:58 - 09:21 (02:22)

(UNKNOWN :1 :1 THU DEC 25 06:58 - 06:

##把输出的信息中的冒号(:)删除

root@localhost tmp# last | tr -d ':'

root pts/0 0 Mon Dec 29 0809 still logged in

root 0 0 Mon Dec 29 0808 still logged in

(unknown 0 0 Mon Dec 29 0648 - 0808 (0120)

reboot system boot 3.10.0-123.el7.x Mon Dec 29 1447 - 0823 (-6-24)

root pts/0 1 Thu Dec 25 0752 - 0920 (0128)

root 1 1 Thu Dec 25 0658 - 0921 (0222)

##复制文件并转换其编码

root@localhost tmp# cp /etc/passwd /tmp/passwd && \

unix2dos /tmp/passwd

##查看文件的编码

root@localhost tmp# file /etc/passwd /tmp/passwd

/etc/passwd: ASCII text

/tmp/passwd: ASCII text

root@localhost tmp#

root@localhost tmp# cat /tmp/passwd |tr -d '\r' > /tmp/passwd.linuxroot@localhost tmp# ls -l /etc/passwd /tmp/passwd*

-rw-r--r--. 1 root root 2824 Dec 25 08:33 /etc/passwd

-rw-r--r--. 1 root root 2824 Dec 29 08:25 /tmp/passwd

-rw-r--r--. 1 root root 2824 Dec 29 08:31 /tmp/passwd.linux

root@localhost tmp#

col

##显示文件中的特殊字符

root@localhost tmp# cat-A /tmp/passwd

bash: cat-A: command not found...

root@localhost tmp# cat -A /tmp/passwd

root❌0:0:root:/root:/bin/bash$

bin❌1:1:bin:/bin:/sbin/nologin$

daemon❌2:2:daemon:/sbin:/sbin/nologin$

adm❌3:4:adm:/var/adm:/sbin/nologin$

lp❌4:7:lp:/var/spool/lpd:/sbin/nologin$

##把输入的文件结果中的^Itab转成空白并输出

root@localhost tmp# cat /etc/man_db.conf |col -x|cat -A|more

#$

#$

This file is used by the man-db package to configure the man and cat p

aths.$

It is also used to provide a manpath for those without one by examinin

g$

their PATH environment variable. For details see the manpath(5) man pa

ge.$

#$

Lines beginning with `#' are comments and are ignored. Any combination

of$

##把man page 转换为 /root/col.man 纯文本文档

root@localhost tmp# man col > /tmp/col.man

root@localhost tmp# vi /tmp/col.man

root@localhost tmp#

join

处理两个文件之间的数据

##把/etc/passwd /etc/shadow相关数据整合成一栏

root@localhost tmp# head -n 3 /etc/passwd /etc/shadow

==> /etc/passwd

root❌0:0:root:/root:/bin/bash

bin❌1:1:bin:/bin:/sbin/nologin

daemon❌2:2:daemon:/sbin:/sbin/nologin

==> /etc/shadow

root: 6 6 6zoMJbbV16.vhU23Q$NsUMn8D8d6IaAsE5BNywpVZbS5ZvVkV11l7WhHZt8X82DZpsRu6o48pIpFcssK1wSCF6Sb4hYdp/lJSF5kGBh.:16412:0:99999:7:::

bin:*:16231:0:99999:7:::

daemon:*:16231:0:99999:7:::

root@localhost tmp#

##两份文档第一个字段相同者整合成一行

root@localhost tmp# join -t ':' /etc/passwd /etc/shadow

root❌0:0:root:/root:/bin/bash: 6 6 6zoMJbbV16.vhU23Q$NsUMn8D8d6IaAsE5BNywpVZbS5ZvVkV11l7WhHZt8X82DZpsRu6o48pIpFcssK1wSCF6Sb4hYdp/lJSF5kGBh.:16412:0:99999:7:::

bin❌1:1:bin:/bin:/sbin/nologin:*:16231:0:99999:7:::

daemon❌2:2:daemon:/sbin:/sbin/nologin:*:16231:0:99999:7:::

adm❌3:4:adm:/var/adm:/sbin/nologin:*:16231:0:99999:7:::

lp❌4:7:lp:/var/spool/lpd:/sbin/nologin:*:16231:0:99999:7:::

sync❌5:0:sync:/sbin:/bin/sync:*:16231:0:99999:7:::

shutdown❌6:0:shutdown:/sbin:/sbin/shutdown:*:16231:0:99999:7:::

halt❌7:0:halt:/sbin:/sbin/halt:*:16231:0:99999:7:::


root@localhost tmp# head -n 3 /etc/passwd /etc/group

==> /etc/passwd

root❌0:0:root:/root:/bin/bash

bin❌1:1:bin:/bin:/sbin/nologin

daemon❌2:2:daemon:/sbin:/sbin/nologin

==> /etc/group

root❌0:

bin❌1:

daemon❌2:

root@localhost tmp#

root@localhost tmp# join -t ':' -1 4 /etc/passwd -2 3 /etc/group

0:root❌0:root:/root:/bin/bash:root❌

1:bin❌1:bin:/bin:/sbin/nologin:bin❌

2:daemon❌2:daemon:/sbin:/sbin/nologin:daemon❌

4:adm❌3:adm:/var/adm:/sbin/nologin:adm❌

join: /etc/passwd:6: is not sorted: sync❌5:0:sync:/sbin:/bin/sync

7:lp❌4:lp:/var/spool/lpd:/sbin/nologin:lp❌

join: /etc/group:11: is not sorted: wheel❌10:

99:nobody❌99:Nobody:/:/sbin/nologin:nobody❌

81:dbus❌81:System message bus:/:/sbin/nologin:dbus❌

999:polkitd❌999:User for polkitd:/:/sbin/nologin:polkitd❌

root@localhost tmp#

paste

把两份文档相关的数据 写在一起并用tab隔开

root@localhost tmp# paste /etc/passwd /etc/shadow|head -n 3

root❌0:0:root:/root:/bin/bash root: 6 6 6zoMJbbV16.vhU23Q$NsUMn8D8d6IaAsE5BNywpVZbS5ZvVkV11l7WhHZt8X82DZpsRu6o48pIpFcssK1wSCF6Sb4hYdp/lJSF5kGBh.:16412:0:99999:7:::

bin❌1:1:bin:/bin:/sbin/nologin bin:*:16231:0:99999:7:::

daemon❌2:2:daemon:/sbin:/sbin/nologin daemon:*:16231:0:99999:7:::

root@localhost tmp#

expand

把tab转换成空格

root@localhost tmp# grep 'jimi' passwd | head -n 3

jimistephen❌1000:1000:jimistephen:/home/jimistephen:/bin/bash

jimi❌1001:1001:www.jimi.com:/home/jimi:/bin/bash

root@localhost tmp#

##一个tab换成 6个空格

root@localhost tmp# grep 'jimi' passwd |head -n 3| expand -t 6 -| \

cat -A

jimistephen❌1000:1000:jimistephen:/home/jimistephen:/bin/bash$

jimi❌1001:1001:www.jimi.com:/home/jimi:/bin/bash$

root@localhost tmp#

split 分割文档

##每10条记录记录成一个文件

root@localhost tmp# ls -al /| split -l 10 - lsroot

root@localhost tmp# wc -l lsroot*

10 lsrootaa

10 lsrootab

4 lsrootac

24 total

root@localhost tmp#

xargs 参数的切换

相关推荐
折哥的程序人生 · 物流技术专研3 小时前
Java面试85题图解版 · 特别篇:2026后端高频面试题复盘(算法底层逻辑+高并发架构设计全解析,附Java实战代码)
java·网络·数据库·算法·面试
一条泥憨鱼3 小时前
【Redis】数据类型和常用命令
java·数据库·redis·后端·缓存
c238563 小时前
Linux C++ 进度条进阶美化与工程化封装
linux·运维·服务器
李小白663 小时前
第四天-WEB服务器基本原理,IIS服务
运维·服务器·前端
云烟成雨TD4 小时前
Spring AI Alibaba 1.x 系列【78】沙箱(Sandbox)
java·人工智能·spring
程序员二叉4 小时前
【Java】 异常高频面试题精讲 | 易错点+对比总结
java·开发语言·面试
爱喝水的鱼丶4 小时前
SAP-ABAP:SAP视图开发入门:四类标准视图的适用场景与创建步骤详解
服务器·数据库·性能优化·sap·abap
周航宇JoeZhou4 小时前
JB3-9-SpringAI(二)
java·ai·agent·多智能体·调度·智能体·观察
好家伙VCC4 小时前
Web Components主题热切换方案揭秘
java·前端
慕木沐4 小时前
Google ADK Java 1.0版本 核心机制与实战 Demo
java·开发语言·python