Linux系统中处理分析文件内容(sed&awk)的用法
1.awk(强大的文本分析工具)
1 awk [-F filed-separator] 'command' file_path 2 #默认域分隔符为空格(被分隔开的单个内容称为域) 3 4 #例 5 tail /etc/passwd | awk -F":" '{print $0}' #输出文件前10行内容 6 tail /etc/passwd | awk -F":" '{print $1}' #输出文件前10行第一列内容 7 tail /etc/passwd | awk -F":" '{print $1"-"$2}' #输出文件前10行第一列和第二列内容,以"-"分隔 8 9 常用内置变量 10 FNR #浏览文件的记录数,但区分文件 11 NR #浏览文件的记录数,不区分文件 12 NF #文件每行的域数 13 OFS #指定输出域的分隔符 14 15 #例 16 awk '{OFS="-";print $1,$2}'
2.sed(流编辑器,一次处理一行内容)
1 sed [nefr] [action] [file] 2 3 #nefr 4 sed -n #使用安静模式,不打印所有内容,只打印结果 5 sed -i #直接修改文件内容,而不输出到终端 6 7 #action 8 a #新增 9 c #取代 10 i #插入 11 s #替换 12 13 d #删除 14 #例如 15 sed "3d" file_path #删除第三行 16 sed "1,3d" file_path #删除前三行第一行和第三行 17 sed "1;3d" file_path #删除第一行和第三行 18 sed "/^$/d" file_path #删除空行 19 sed "/abc/d" file_path #删除含abc的行 20 sed "/abc/,+3d" file_path #删除含abc的行及后面三行 21 sed "/abc/,~3d" file_path #删除含abc的行及后面两行 22 sed "1~2d" file_path #从第一行开始,每两行删一行 23 sed "\$d" file_path #删除最后一行 24 sed "/dd\|cc/d" file_path #删除含有dd或cc的行 25 26 s #替换 27 #例如 28 sed "s/old/new/g" file_path #g表示对所在行,进行全部替换 29 sed "s/\(old\)/new/" file_path #忽略小括号,替换小括号中的内容 30 sed -r "s/(old)/new/" file_path #忽略小括号,替换小括号中的内容 31 sed -r "s/(old)/new\1/" file_path #引用第一个括号中的内容 32 sed -r "s/(piece1_old)(piece2_old)/\2new\1/" file_path #被替换对象为piece1+piece2

浙公网安备 33010602011771号