linux命令行文本处理工具

文件浏览
cat 查看文件内容
more 以翻页形式查看文件内容
less 以翻页形式查看文件内容
head 查看文件的开始10行
tail 查看文件的结束10行

查看一个文件
cat a.txt
参数:
-n 或 –number 由 1 开始对所有输出的行数编号
-b 或 –number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 –squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行

新建一个文件
cat > a.txt
合并两个文件
cat a.txt b.txt > c.txt

向文件追加内容以EOF结尾
cat <<EOF >>a.txt

新建a.txt并输入内容,如果存在,则内容覆盖
echo 'hello ,welcome' >a.txt
新建a.txt文件并输入内容,如果存在,则追加内容
echo 'hello,welcome' >>a.txt

基于关键字搜索

grep 'linuxcast' /etc/password
find / -user linuxcast | grep video

-i 在搜索的时候忽略大小写
-n 显示结果所在行数
-v 输出不带关键字的 行
-A3 在输出的时候包含结果所在行之后的指定的行数 3
-B3 在输出的时候包含结果所在行之前的指定行数 3


基于列处理文本
命令cut 用以基于列处理文本内容
cut -d: -f1 /etc/passwd
grep linuxcast /etc/passwd |cut -d: -f3

-d 指定分割字符 (默认是tab)
-f 指定输出的列号
-c 基于字符进行切割
cut -c2-6 /etc/passwd 截取第二到第6个之间的字符

文本统计
命令wc用以统计文本信息

wc linuxcast
-l 只统计行数
-w 只统计单词
-c 只统计字节数
-m 只统计字符数


文本排序
命令sort用以对文本内容进行排序
sort linuxcast
-r 进行倒序排序
-n 基于数字进行排序
-f 忽略大小写
-u 删除重复行
-t c 使用c作为分隔符分割为列进行排序
-kx 当进行基于指定字符分割为列的排序时,指定基于那个列排序

uniq 删除相邻重复行

文本比较
命令diff 用以比较两个文件的区别
diff linuxcast linuxcast-new
-i 忽略大小写
-b 忽略空格数量的改变
-u 统一显示比较信息(一般用以生成patch文件)
diff -u linuxcast linuxcast-new > final.patch

检查拼写
命令aspell 用以显示检查英文拼写
aspell check linuxcast
aspell list < linuxcast


处理文本内容

删除关键字
tr -d 'tmd' < linuxcast
转换大小写
tr 'a-z' 'A-Z' <linuxcast

搜索替换
命令sed 用以搜过并替换文本
sed 's/linux/unix/g' linuxcast
sed '1,50s/linux/unix/g' linuxcast
sed -e 's/linux/unix/g' -e 's/nash/nash_su/g' linuxcast
sed -f sededit linuxcast

原文地址:https://www.cnblogs.com/airven/p/5285805.html