文本文件操作命令
命令 | 功能 | 命令 | 功能 |
---|---|---|---|
cat, tac | 显示文本文件内容 | diff | 显示两个文件的差异 |
more, less | 分页显示文本文件内容 | expand | 将文件中的制表符转换为空格 |
head, tail | 显示文本文件的前若干行或后若干行 | unexpand | 将文件中的空格转换为制表符 |
cut | 纵向切割出文本指定的部分 | dos2unix | 将DOS格式的文本转换成UNIX格式 |
paste | 纵向合并多个文本 | unix2dos | 将UNIX格式的文本转换成DOS格式 |
grep | 按关键字抽取匹配的行 | iconv | 将文本从一种编码转换成另一种编码 |
wc | 文本数据统计 | tr | 转换字符 |
sort | 以行为单位对文本文件排序 | sed | 流编辑器,通常用于非交互式的字符串替换 |
uniq | 删除文本文件中连续重复的行 | awk | awk 是一种用于处理文本的编程语言工具,通常用于处理有格式的文本 |
cat
命令 | 说明 |
---|---|
cat /etc/paswd | 滚屏显示文件 /etc/passwd 的内容 |
cat -n /etc/passwd | 滚屏显示文件 /etc/passwd 的内容并显示行号 等价于 nl /etc/passwd |
more
命令 | 说明 |
---|---|
more /etc/passwd | 分屏显示文件 /etc/paawd 的内容 注意 <Space>键 <Enter>键 和 q 键的使用 |
more +10 /etc/passwd | 从第10行起分屏显示文件 /etc/passwd 的内容 |
less
命令 | 说明 |
---|---|
less /etc/passwd | 分屏显示文件 /etc/passwd 的内容 注意 <Space>键 <Enter>键 <PgDn>键<PgUp>键和 q 键的使用 |
head
命令 | 说明 |
---|---|
head -4 /etc/passwd | 显示文件etc/passwd 前4行内容 |
tail
命令 | 说明 |
---|---|
tail -4 /etc/passwd | 显示文件 /etc/passwd 后4行的内容 |
tail -n + 10 /etc/passwd | 显示文件 /etc/passwd 从10行开始到文件尾的内容 |
tail -f /var/log/messages | 跟踪显示不断增长的文件结尾内容(通常用于显示日志文件) |
cut
命令 | 说明 |
---|---|
cut -f1,3-5 -d: /etc/passwd | 以冒号作为间隔符显示 /etc/passwd 的第1,3,4,5列 |
paste
命令 | 说明 |
---|---|
paste mytxt.en mytxt.cn | 纵向合并文件 mytxt.en 和 mytxt.cn |
wc
命令 | 说明 |
---|---|
wc myfile | 统计指定文本文件的行数、字数、字符数 |
wc -l myfile | 统计指定文本文件的行数 |
tr
命令 | 说明 |
---|---|
tr ‘A-Z’ ‘a-z’ myfile | 将myfile文件中的所有大写字母转换为小写字母显示在屏幕上 |
sort
命令 | 说明 |
---|---|
sort myfile | 以行为单位对文本文件myfile排序(以ASCII码顺序) |
sort -u myfile | 以行为单位对文本文件myfile排序(对相同的行只输出一行) |
sort -r myfile | 以行为单位对文本文件myfile排序(以ASCII码逆序) |
sort -n myfile | 以行为单位对文本文件myfile排序(根据字符串的数值进行排序) |
grep
命令 | 说明 |
---|---|
grep my myfile | 在文件myfile中查找字符串my |
grep -i my myfile1 myfile2 | 在多个指定文件中查找字符串my(忽略大小写) |
grep -v “^#” /etc/grub.conf | 显示文件 /etc/grub.conf 除了以 # 开始行 |
grep -l root /etc/* | 列出 /etc 目录下所有内容包含字符串 root 的文件名 |
grep -lr root /etc/* | 递归列出 /etc 目录下 所有内容包含字符串 root 的文件名 |
diff
命令 | 说明 |
---|---|
diff myfile1 myfile2 | 比较两个文件的差异 |
dos2unix
命令 | 说明 |
---|---|
dos2unix -k *.txt | 将当前目录下所有后缀为txt的文件转换为UNIX格式(不改变时间戳) |
dos2unix -k -n dosfile linuxfile | 将DOS格式的dosfile文件转换为 UNIX格式的 linuxfile |
iconv
命令 | 说明 |
---|---|
iconv -f GB2312 -t UTF-8 -o outputfile inputfile | 将编码为GB2312的inputfile 文件转化为 UTF-8 编码的outputfile |
sed
显示之后,未改变源文件
命令 | 说明 |
---|---|
sed ‘s/Windows/Linux/g’ myfile | 将myfile文件中所有Windows替换成Linux,未改变原文件 |
sed ‘s/cc*/c/g’ myfile | 将 myfle 中所有连续出现的c都压缩成单个c |
sed ‘s/^[\t]*//’ myfile | 删除myfile中每一行前导的连续“空白字符”(空格,制表符) |
sed ‘s/*$//’ myfile | 删除myfile中每行结尾的所有空格 |
sed ‘s/^/> /’ myfile | 在每一行开头加上一个尖括号和空格(引用信息) |
sed ‘s/^>//’ myfile | 将每一行开头处的尖括号和空格删除 (解除引用) |
sed ‘s/.*///’ myfile | 删除路径前缀 |
sed ‘/^$/d’ myfile | 删除所有空白行 |
awk
命令 | 说明 |
---|---|
awk -F: ‘{print $1,$5}’ /etc/passwd | 以分号为间隔符,列出/etc/passwd 的第1列和第5列 |
命令 | 说明 |
---|---|