Linux把字符串转换成,linux(十)字符转换

tr

删除一段信息中的文字,进行文字信息的替换

tr [-ds] SET1

-d : 删除信息中SET1这个字符串

-s : 取代掉重复的字符。

last | tr '[a-z]' '[A-Z]'

将小写字符转换为大写字符

cat /etc/passwd | tr -d ':'

删除 `:`

操作系统间的文件换行转换

unix2dos filename转换文件换行方式为window类型

dos2unix filename 转换文件换行方式为unix类型

col 处理特殊字符

col [-xb]

-x : 将tab转换成对等的空白键

cat -A /etc/passwd | col -x

将[tab]表示为对等的空白键而不是`^l`

join 处理两个文件中有相同数据的那一行

join [-ti12] file1 file2

-t : join默认以空白字符分隔数据,并且对比第一个字段的数据,

如果两个文件相同,则将两笔数据联成一行,且第一个字段放在第一个.

-i : 忽略大小写差异

-1 : 数字1,代表"第一个文件要用那个字段来分析"的意思

-i : 代表"第二个文件要用那个字段来分析"的意思

下面给出一个稍微复杂一点的示例

head -n 3 /etc/passwd /etc/group

输出如下

root:x:0:0:root:/root:/bin/zsh

daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin

bin:x:2:2:bin:/bin:/usr/sbin/nologin

==> /etc/group <==

root:x:0:

daemon:x:1:

bin:x:2:

可以看出,/etc/passwd 的GID在第四项,/etc/group的在第三项,怎么把他们结合起来呢.

join -t ':' -1 4 /etc/passwd -2 3 /etc/group | head -n 3

输出是这样的

0:root:x:0:root:/root:/bin/zsh:root:x:

1:daemon:x:1:daemon:/usr/sbin:/usr/sbin/nologin:daemon:x:

2:bin:x:2:bin:/bin:/usr/sbin/nologin:bin:x:

past join的简化版,直接将两行贴在一一起,以tab隔开

past [-d] file1 file2

-d : 后接分隔字符.默认以tab分隔

- : 如果file部分写成-,代表标准输入的数据

eg

先用cat读出/etc/group,再将 /etc/group /etc/shadow 和标准输入贴在一起,只取出前三行

cat /etc/group | paste /etc/group /etc/shadow - | head -n 3

expand 用来将[tab]转换为空白键

expand [-t] file

-t : 后面接数字,代表一个[tab]用多少空白字符表示

split 大文件分割成小文件

split [-bl] file PREFIX

-b : 后接欲分区成的文件大小,可加单位,b,k,m...

-l : 以行数进行分区

将service 分割成300kb大小

split -b 300k /etc/services services

将分割好的文件命名为servicesaa servicesab....的形式

将分割文件合并(并不限于此)

cat services* >> servicesback

xargs 用来将标准输入切割成参数并转发给需要的命令

xargs [-0epn] command

-0 : 如果stdin有特殊字符,还原它们

-e : eof,后接表示终止的字符(串)

-p : 执行每个指令的argument都会询问使用者

-n : 后接次数,表示一次使用几个参数

取出/etc/passwd的第一项,取三行并且使用id命令查询

cut -d ':' -f 1 /etc/passwd | head -n 3 | xargs -n 1 id

CRLF : 回车(CR, ASCII 13, \r) 换行(LF, ASCII 10, \n)。

这两个ACSII字符不会在屏幕有任何输出,但在Windows中广泛使用来标识一行的结束。而在Linux/UNIX系统中只有换行符。

如果有时候需要stdin或stdout,可以用-代替

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值