Linux中文本处理命令,本文以“henu.txt”文件为例 1、wc命令:对文件行、字数(单词)、字符数做简单统计 参数(-l:仅列出行; -w:仅列出多少字(英文单字); -m:多少字符;) 1)查看文件全部参数 more henu.txt wc henu.txt 其中16 16 417 分别代表行数、一行中的字符数、总的字符数 2)统计文件行数 wc -l henu.txt “wc”命令主要统计英文的字符,建议使用此命令查看文件中的行数 2、文件内容含有条件的筛选awk # FS=",":以","分割行, $1:显示第一列,NR:当前所在的行,NF当前行分割的字段数 awk 'BEGIN{FS=","} {print $1 "\t" $2 "\t" NR "\t" NF}' henu.txt # 筛选第一列->排序->去重并计算重复次数->按照重复次数排序->重定向到新文件中 awk 'BEGIN{FS=","} {print $1}' henu.txt | sort | uniq -c | sort -rn -k1 > new_henu.txt 3、替换字符和删除行sed 1)替换:sed 's/旧字符/新字符/g' ,特殊字符要使用转义 其中正则表达式中,“.”表示任意字符,“*”重复多次 # 表示删除file_name文件中的括号里面的内容和括号,并用空代替 cat file_name | sed 's/(.*)//g' | sed 's/\[.*\]//g' # 将“河南大学”替换为“河大” cat henu.txt | sed 's/'河南大学'/'河大'/g' > new_henu.txt 2)删除行 #删除第一行和第二行 cat henu.txt | sed '1,2d' >new_henu.txt 4、查找字符grep #查找“河南大学” cat henu.txt | grep '河南大学' >new_henu.txt #正则查找,查找以“大”开头,以“语”结束的字符 cat henu.txt | grep '大.*语' >new_henu.txt 5、其他 1)cut切割字符 # 以“,”切割文件并取出第1列 cat henu.txt |cut -d ',' -f 1| sort | uniq -c | sort -rn -k1 > new_henu.txt 2)sort排序的时候注意默认是按照字典的方式排序,如果按照数字时则必须加上-n uniq去除重复,只能去除相邻的重复,所以要先排序,后去除重复 3)查看制表符的命令\t cat -T file_name sed -n l file_name(英文字母L的小写,不是管道|) tr -d 'delete_char' 文件内容如下: 2,河南大学,软件工程 3,河南大学,美术 1,河南大学,计算机 4,河南大学,体育 5,河南大学,物理 13,河南科技大学,物理 6,河南大学,化学 1,河南大学,计算机 7,河南大学,计算机 8,河南科技大学,计算机 1,河南大学,计算机 9,河南理工学院, 10,河南工学院, 11,河南大学,英语 12,河南大学,语文 13,河南科技大学,物理 14,河南科技大学,化学 15,河南大学,计算机 13,河南科技大学,物理 13,河南科技大学,物理 16,河南大学,软件工程 参见《鸟哥的私房菜》 |