本文共 2885 字,大约阅读时间需要 9 分钟。
tr 命令用于转换或删除文件中的字符。从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备。
tr [-cdst][--help][--version][第一字符集][第二字符集]
参数:
- -c, –complement:反选设定字符。也就是符合 SET1 的部份不做处理,不符合的剩余部份才进行转换 - -d, –delete:删除指令字符 - -s, –squeeze-repeats:缩减连续重复的字符成指定的单个字符 - -t, –truncate-set1:削减 SET1 指定范围,使之与 SET2 设定长度相等 - –help:显示程序用法信息 - –version:显示程序本身的版本信息# 将所有小写字符转换成大写cat testfile |tr a-z A-Z # 压缩多个空格为1个echo "fdas fadsfaf" | tr -s " "# 把文件中的数字0-9替换为a-jcat file | tr [0-9] [a-j]# 删除文件file中出现的换行'\n'、制表'\t'字符cat file | tr -d "\n\t"
sed [-nefri] ‘command’ 输入文本
-i∶直接修改读取的档案内容,而不是由萤幕输出。
a ∶新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)
sed 's/要替换的字符串/新的字符串/g'
(要替换的字符串可以用正则表达式)# ab 为文件名 删除某行 [root@localhost ruby] # sed '1d' ab #删除第一行 [root@localhost ruby] # sed '$d' ab #删除最后一行 [root@localhost ruby] # sed '1,2d' ab #删除第一行到第二行 [root@localhost ruby] # sed '2,$d' ab #删除第二行到最后一行 显示某行. [root@localhost ruby] # sed -n '1p' ab #显示第一行 (如果不加-n就会全部显示) [root@localhost ruby] # sed -n '$p' ab #显示最后一行 [root@localhost ruby] # sed -n '1,2p' ab #显示第一行到第二行 [root@localhost ruby] # sed -n '2,$p' ab #显示第二行到最后一行 使用模式进行查询 [root@localhost ruby] # sed -n '/ruby/p' ab #查询包括关键字ruby所在所有行 [root@localhost ruby] # sed -n '/\$/p' ab #查询包括关键字$所在所有行,使用反斜线\屏蔽特殊含义 #第一行后增加字符串"drink tea" sed '1a drink tea' ab #第一行到第三行后增加字符串"drink tea" sed '1,3a drink tea' ab #第一行后增加多行,使用换行符\n sed '1a drink tea\nor coffee' ab #第一行代替为Hi sed '1c Hi' ab #第一行到第二行代替为Hi sed '1,2c Hi' ab #替换ruby为bird sed -n '/ruby/p' ab | sed 's/ruby/bird/g' # 替换 \#!为23333 cat cal.sh | sed -n "s/#\!/23333/g" # 将\#!替换成空,即删除这两个字符 cat cal.sh | sed "s/#\!//g" #在文件ab中最后一行直接输入"bye" sed -i '$a bye' ab
cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。
不能处理多空格为分隔符的行cut [-bn] [file]cut [-c] [file]cut [-df] [file]
# 提取每行的第三个字符who | cut -b 3# 提取第3,第4、第5和第8个字节who|cut -b 3-5,8# 以 `:`为分隔符,选取第一个cat /etc/passwd | cut -d ":" -f 1
当有多个空格为分隔符时,可用awk命令
# 选出第一列(以多个空格分隔)[root@localhost sh]# ll | awk '{print $1}'-rwxr-xr-x.-rwxr-xr-x.-rwxr-xr-x.