cut - remove sections from each line of files
帮助信息:
-b:以字节为单位取出固定字符区间
-c:以字符 的单位取出固定字符区间;
-d:后面接分隔字符。与-f一起使用;
-f:依据-d的分隔字符将一段信息分割成为数段,用-f取出第几段的意思;
grep “Linux” /etc/passwd | cut -c 1 取第一个字符
grep “Linux” /etc/passwd | cut -c 1,2 取第一个和第二个
grep “Linux” /etc/passwd | cut -c 1-3 取前三个
grep “Linux” /etc/passwd | cut -c 2-4 取2-4
grep “Linux” /etc/passwd | cut -c 3- 取第三个到结尾
grep “Linux” /etc/passwd | cut -c -3 取前三个
grep “Linux” /etc/passwd | cut -d ‘:’ -f 1 取第一个分隔符前的数段
sed - stream editor for filtering and transforming text
-r:使用扩展正则表达式
-e:它告诉sed将下一个参数解释为一个sed指令,只有当命令行上给出多个sed指令时才需要使用-e选项
-i:直接对内容进行修改,不加-i时默认只是预览,不会对文件做实际修改
-n:取消默认输出,sed默认会输出所有文本内容,使用-n参数后只显示处理过的行
命令-sed编辑命令 a:追加 (在后面) i:插入 (在前面) d:删除 s:替换 p:打印
例: sed -i ‘$ahi’ passwd 在末尾追加hi
sed -i ‘1ahi’ passwd 在第一行后面插入hi
sed -i ‘1ihi’ passwd 在第一行前面直接插入hi
sed -i 's/linux/Linux/' passwd 替换一个linux为Linux
sed -i 's/linux/Linux/g' passwd 全部替换
sed -i '20,34s/linux/Linux/' passwd 20到34行替换
awk '{[patern] action}' {filenames} # 行匹配语句 awk ''只能用单引号(默认空格为分隔符)
$n 当前记录的第n个字段,字段间由FS分隔
例: awk '{print $1,$2} ' file 打印第一列和第二列
$0 完整的输入记录
awk '{print $0} ' file 打印file文件完整的输入记录
NF 一条记录的字段的数目
awk '{print NF,$1}' file 打印第一列和列号
awk '{print $NF}' file 打印最后一列
NR 已经读出的记录数,就是行号,从1开始
awk '{print NR,$1}' file 打印第一列和行号
指定分隔符: -F
例: awk -F ':' ‘{print $1}’ passwd 以:为分隔符打印第一列
进行判断 : awk -F ':' ' $1 == "linux" {print $0 } ' passwd
把第一列是linux的都打印出来。
赋值: awk -F ':' ' $1 = "tftp" {print $0} ' passwd
把第一列全部换为tftp ,打印全文