`

-转--linux 文本命令

 
阅读更多

 

linux 文本命令

 

 

1. cat语法

cat [options] [filename]... 
 [options]: 
  -A, --show-all           等价于 -vET 
  -b, --number-nonblank    对非空输出行编号 
  -e                       等价于 -vE 
  -E, --show-ends          在每行结束处显示 $ 
  -n, --number             对输出的所有行编号 
  -s, --squeeze-blank      不输出多行空行 
  -t                        -vT 等价 
  -T, --show-tabs          将跳格字符显示为 ^I 
  -u                       (被忽略) 
  -v, --show-nonprinting   使用 ^  M- 引用,除了 LFD  TAB 之外 
  --help                   显示此帮助信息并离开
# cat file | tail -n +5 | head -n 100 > newfile.txt 注:查看从第5行开始的100行内容,并把结果重定向到一个新的文件
# cat file | head -n 100 | tail -n +5 注:查看第5行到100行的内容,并把结果重定向到一个新的文件
# cat file1 file2 | sort | uniq > file3    注:取出两个文件的并集
# cat file1 file2 | sort | uniq -d > file3 注:取出两个文件的交集
# cat file1 file2 | sort | uniq -u > file3 注:删除交集,留下其他的行
# cat file1 file2 > file3                  注:两个文件合并(一个文件在上,一个文件在下)
# paste file1 file2 > file3                注:两个文件合并(一个文件在左,一个文件在右)
# sort file | uniq       注:重复的多行留一行
# sort file | uniq u    注:把重复的行全部去掉
# cat /etc/profile       注:查看/etc/目录下的profile文件内容; 
# cat -b /etc/fstab      注:查看/etc/目录下的profile内容,并且对非空白行进行编号,行号从1开始; 
# cat -n /etc/profile    注:对/etc目录中的profile的所有的行(包括空白行)进行编号输出显示; 
# cat -E /etc/profile    注:查看/etc/下的profile内容,并且在每行的结尾处附加$符号; 
# cat /etc/fstab /etc/profile | more 注:对于内容极大的文件来说,可以通过管道|传送到more 工具,然后一页一页的查看
## cat filename | grep --color -ciw 'word' 一行多个word只统计一次
# cat filename | grep -o 'word' | wc -l
注:查看某词忽略大小写在文件中出现的次数

2. cut语法

显示切割后的数据
-f:选择显示的列
-s:不显示没有分隔符的行
-d:自定义分隔符
# cat grep.txt 
    aaa bbb  ccc
    111 222
    xx yy zz
    oo 
    qq ttt wwx
    88888
    666
    AA BB CC
# cut -d' ' -f2 -s grep.txt 注:以空格为分隔符,将每一行分为多列,然后显示第2
    bbb
    222
    yy
    ttt
    BB
# cut -d' ' -f2 grep.txt 
    bbb
    222
    yy
    oo
    ttt
    88888
    666
    BB

3. sort语法

-n:按数值排序
-r:倒序
-t:自定义分隔符
-k:选择排序列
-u:合并相同行
-f:忽略大小写
# cat sort.txt 
    banana 12
    apple 1
    orange 8
# sort sort.txt 
    apple 1
    banana 12
    orange 8
# sort -t' ' -k2 sort.txt
    apple 1
    banana 12
    orange 8
# sort -t' ' -k2 -n sort.txt
    apple 1
    orange 8
    banana 12
# sort -t' ' -k2 -n -r sort.txt
    banana 12
    orange 8
    apple 1

4. wc语法

默认输出的为 文件的行数、单词数、以及字符数
-c:字节
-m:字符
-l:行数
-L:最长一行的字符
-w:单词数
# cat grep.txt 
    aaa bbb  ccc
    111 222
    xx yy zz
    oo 
    qq ttt wwx
    88888
    666
    AA BB CC
# wc grep.txt  
    8 17 64 grep.txt
# wc -m grep.txt 
    64 grep.txt
# wc -c grep.txt 
    64 grep.txt
# wc -l grep.txt 
    8 grep.txt
# wc -L grep.txt 
    12 grep.txt
# wc -w grep.txt 
    17 grep.txt

5. more语法

more [options] [filename] 
  [options]: 
    +num   从第num行开始显示; 
    -num   定义屏幕大小,为num行; 
    +/pattern   pattern 前两行开始显示; 
    -c   从顶部清屏然后显示; 
    -d   提示Press space to continue, 'q' to quit.(按空格键继续,按q键退出),禁用响铃功能; 
    -l    忽略Ctrl+l (换页)字符; 
    -p    通过清除窗口而不是滚屏来对文件进行换页。和-c参数有点相似; 
    -s    把连续的多个空行显示为一行; 
    -u    把文件内容中的下划线去掉退出more的动作指令是q
指令
    Enter       向下n行,需要定义,默认为1行; 
    Ctrl+f      向下滚动一屏; 
    空格键      向下滚动一屏; 
    Ctrl+b 		返回上一屏; 
    =           输出当前行的行号; 
    :f          输出文件名和当前行的行号; 
    v           调用vi编辑器; 
    ! 命令      调用Shell,并执行命令; 
    q           退出more当我们查看某一文件时,想调用vi来编辑它,不要忘记了v动作指令,这是比较方便的;
# more -dc /etc/profile     注:显示提示,并从终端或控制台顶部显示; 
# more +4 /etc/profile      注:从profile的第4行开始显示; 
# more -4 /etc/profile      注:每屏显示4行; 
# more +/MAIL /etc/profile  注:从profile中的第一个MAIL单词的前两行开始显示;
# ls -l /etc |more			注:大文件需与管道结合

6. less语法

less [options] [filename] 
  [options]: 
	-c 从顶部(从上到下)刷新屏幕,并显示文件内容。而不是通过底部滚动完成刷新; 
	-f 强制打开文件,二进制文件显示时,不提示警告; 
	-i 搜索时忽略大小写;除非搜索串中包含大写字母; 
	-I 搜索时忽略大小写,除非搜索串中包含小写字母; 
	-m 显示读取文件的百分比; 
	-M 显法读取文件的百分比、行号及总行数; 
	-N 在每行前输出行号; 
	-p pattern 搜索pattern;比如在/etc/profile搜索单词MAIL,就用 less -p MAIL /etc/profile 
	-s 把连续多个空白行作为一个空白行显示; 
	-Q 在终端下不响铃; 
指令	
    回车键 向下移动一行; 
	y 向上移动一行; 
	空格键 向下滚动一屏; 
	b 向上滚动一屏; 
	d 向下滚动半屏; 
	h less的帮助; 
	u 向上洋动半屏; 
	w 可以指定显示哪行开始显示,是从指定数字的下一行显示;比如指定的是6,那就从第7行显示; 
	g 跳到第一行; 
	G 跳到最后一行; 
	p n% 跳到n%,比如 10%,也就是说比整个文件内容的10%处开始显示; 
	/pattern 搜索pattern ,比如 /MAIL表示在文件中搜索MAIL单词; 
	v 调用vi编辑器; 
	q 退出less 
	!command 调用SHELL,可以运行命令;比如!ls 显示当前列当前目录下的所有文件;
less -N /etc/profile :显示行号

7. head语法

head -n 行数值 文件名
head -n 10 /etc/profile :显示前10行内容
head -20 filename | column -t

8. tail语法

tail -n 行数值 文件名
tail -n 5 /etc/profile  :显示最后5行内容
tail -f /var/log/syslog :显示文件后十行内容并在文件内容增加后自动显示新增的内容

9. sed语法

sed是一行一行的处理文件内容的,正在处理的内容存放在模式空间(缓冲区)内,处理完成后按照选项的规定进行输出或文件的修改
sed [options]  [command] [filename]
  [options]
	-n  抑制自动(默认的)输出  读取下一个输入行,-n要读取的行号
	-e  执行多个sed命令
	-f  运行脚本
	-i  编辑文件内容
	-i.bak  编辑的同时创造.bak的备份
	-r  使用扩展的正则表达式
  [command]:
	a  在匹配后追加
	i  在匹配后插入
	p  打印
	d  删除
	r/R  读取文件/一行
	w  另存
	s  查找
	c  替换
	y  替换
	h/H   复制拷贝/追加模式空间(缓冲区)到存放空间
	g/G   粘贴 从存放空间取回/追加到模式空间
	x  两个空间内容的交换
	n/N  拷贝/追加下一行内容到当前
	D  删除\n之前的内容
	P  打印\n之前的内容
	b  无条件跳转
	t  满足匹配后的跳转
	T  不满足匹配时跳转
# sed -n 3p /etc/passwd       :对第三行进行操作p打印出
# sed -n '1,3p' /etc/passwd   :显示1-3行的内容
# sed -n '1,3!p' /etc/passwd  :加感叹号就是除了1-3显示其他所有内容
# sed -n '3,+3p' /etc/passwd  :显示第三行和之后的三行
# sed '1i###' /etc/passwd     :在文件的头插入###
# sed '1i###' /etc/passwd > a.txt   :重定向
# sed '1i###' /etc/passwd >> a.txt  :追加
# sed '$a@@@' /etc/passwd >> a.txt  :在文件尾部追加@@@  $代表尾部a代表追加
# sed '3c$$$' /etc/passwd           :第三行插入$$$
# sed '1,2d' ab                     :删除第一行到第二行
# sed -n '/ruby/p' ab               :查询包括关键字ruby所在所有行

10. awk语法

awk语句都是由模式和动作组成,一个awk脚本可以有多个语句。模式决定动作语句的触发条件和触发时间,commands 是真正awk命令,[-F域分隔符]是可选的。 input-file(s) 是待处理的文件。

在awk中,文件的每一行中,由域分隔符分开的每一项称为一个域。通常,在不指名-F域分隔符的情况下,默认的域分隔符是空格。

awk [-F  field-separator]  'commands'  input-file(s) 
  特殊字段:
    BEGIN语句设置计数和打印头部信息,在任何动作之前进行。
    END语句输出统计结果,在完成动作之后执行。
    分隔符默认是空格,可以用-F,改变成逗号为分隔符-F,或改成冒号-F
    eg:准备要显示的内容
# vim result.txt
 aa 7 17 27 37 47 57
 bb 8 18 28 38 48 58
 cc 9 19 29 39 49 59
 dd 6 16 26 36 46 56
# awk '{print $0}' result.txt       :$0显示所有内容
# awk '{print $1}' result.txt       :$1显示内容的第一列
# awk -F: '{print $1}' /etc/passwd  :显示第一列,以:作为分隔符
# awk '{print $1,$3}' result.txt    :显示第一列和第三列内容
# awk 'BEGIN {print "name level result\n"} {print $1,$2,$3} END{ print "end of class1 results"}' result.txt
# awk '$2 >= 7 {print $0}' result.txt
# awk '{ if($1 == "aa" || $2=="8") print $0 }' result.txt

11.grep语法

文本过滤器,全称:Global Regular Expression Print
grep [options] PATTERN[FILE...]
  [options]:
    -i:忽略大小写
    --color:匹配到字符用其他颜色显示出来,默认是红色 -v:显示没有被模式匹配到的行
    -o:只显示被模式匹配到的字符串,不显示行
    -E:使用扩展正则表达式
    -A n:表示显示该行及其后n
    -B n:表示显示该行及其前n
    -C n:表示显示该行及其前后各n
# grep -n root /etc/passwd
# grep -n '[^g]oo' regular_express.txt

12.tr语法

tr [:class:] [:class:]
    alnum:字母和数字
    alpha:字母
    cntrl:控制(非打印)字符
    digit:数字
    graph:图形字符
    lower:小写字母
    print:可打印字符
    punct:标点符号
    space;空白字符
    upper:大写字母
    xdigit:十六进制字符
# tr '[:lower:]' '[:upper:]' :将所有小写字母换成大写字母
# echo 12345 | tr '0-9' '9876543210' :加密
# echo 87654 | tr '9876543210' '0-9' :解密
# echo "Hello 123 world 456" | tr -d '0-9' :使用-dstdin中的数字删除并打印出来

13.echo语法

echo输出内容到控制台
echo [options] [content]
    [options]:
    -e  支持反斜线控制的字符转换
    
# echo "hello\tworld"
# echo -e "hello\tworld"

14.> 输出重定向和 >> 追加

# ls -l > a.txt     :列表的内容覆盖写入文件a.txt
# ls -al >> aa.txt  :列表的内容追加到文件aa.txt的末尾
# cat 文件1 > 文件2 :将文件1的内容覆盖到文件2
# echo “内容” >> 文件

 

分享到:
评论

相关推荐

    linux-Linux命令大全内容包含Linux命令手册详解学习搜集

    本资源"Linux命令大全"包含了516个Linux命令的详细资料,对于学习和理解Linux操作系统至关重要。下面,我们将深入探讨这个资源中涉及的一些关键知识点。 1. **命令手册**: - 在Linux世界中,命令手册(man pages...

    常用命令---idea--Linux--redis--dos

    2. **Linux常用命令**: Linux是一个强大的操作系统,其命令行界面提供了丰富的操作命令: - `ls`:列出目录内容 - `cd`:改变当前工作目录 - `pwd`:显示当前工作目录 - `mkdir`:创建新目录 - `rm`:删除...

    LINUX处理文本命令

    LINUX处理文本命令 处理文本和文本文件的命令 一. sort 文件排序, 通常用在管道中当过滤器来使用. 这个命令可以依据指定的关键字或指定的字符位置, 对文件行进行排序. 使用-m选项, 它将会合并预排序的输入文件. 想...

    Linux基础知识与系统管理教学课件-pdf.rar

    4.1.1 Linux常用命令-文件处理命令-命令格式与目录处理命令ls 4.1.2 Linux常用命令-文件处理命令-目录处理命令 4.1.3 Linux常用命令-文件处理命令-文件处理命令 4.1.4 Linux常用命令-文件处理命令-链接命令 4.2.1 ...

    一起回顾一下linux常用命令----shell和unix和linux命

    本篇将深入探讨Linux常用命令,帮助你更好地理解和操作Linux系统。 首先,让我们从最基本的命令开始: 1. **ls**:用于列出目录中的文件和子目录。通过添加参数,如`-l`(长格式)、`-a`(显示隐藏文件)和`-h`...

    Linux命令学习+Linux标准文本处理命令

    通过学习这些基本的Linux命令和Shell操作,初学者可以更快地熟悉Linux环境,并能有效地管理和操作Linux系统。此外,掌握这些技能还有助于提升在开发、运维以及其他与Linux相关的领域的专业能力。

    Linux文本编辑命令

    1. **ed**:它是最早的Linux文本编辑器,基于行的界面使得它对初学者来说可能较为复杂。`ed`命令允许用户在内存中编辑文本,然后将其写入文件。基本用法包括`a`(追加)、`i`(插入)、`d`(删除)和`w`(写入)等。...

    Linux文本处理命令合集

    ### Linux文本处理命令合集详解 #### diff/patch:查找/修补文本差异 - **diff** 命令用于比较两个文件之间的不同之处。 - `diff version1.txt version2.txt`:简单地列出两个文件之间的不同行。 - `diff -u ...

    jdk-8u144-linux-x64.zip

    1. "jdk-8u144-linux-x64.rpm":如前所述,这是一个RPM格式的JDK安装包,用户可以通过Linux的RPM命令进行安装。 2. "资源说明必读.txt":这通常是一个包含重要安装说明、许可证信息、使用指南或注意事项的文本文件,...

    在linux环境中将Excel转换成文本的命令

    自动化任务以shell为例,shell不能直接操作Excel文档,需要将Excel转换成文本然后在解析和分析,我使用GO语言开发编译成二进制命令,上传到服务器当命令使用。

    jdk-8u151-linux-x64.tar.gz 【官方jdk1.8 linux版】

    - 解压:使用`tar -zxvf jdk-8u151-linux-x64.tar.gz`命令解压文件到指定目录。 - 设置环境变量:编辑`~/.bashrc`或`~/.bash_profile`,添加以下内容: ``` export JAVA_HOME=/path/to/jdk1.8.0_151 export ...

    jdk-8u161-linux-x64.rpm.zip

    总结来说,"jdk-8u161-linux-x64.rpm.zip"是一个适用于Linux 64位系统的Java Development Kit,版本8u161,可以通过RPM命令进行安装。它的重要性在于提供了Java开发和运行所需的所有组件,同时该版本可能包含安全...

    jdk-8u162-linux-x64.tar.gz.zip

    解压流程通常包括首先使用"unzip"命令解压ZIP文件,然后使用"tar -zxvf"命令解压得到的".tar.gz"文件,最后将解压出的目录移动到系统路径下的适当位置,以便全局使用JDK。而"新建文本文档.txt"可能需要根据实际情况...

    Linux基础知识与系统管理视频.rar

    4.1.1 Linux常用命令-文件处理命令-命令格式与目录处理命令ls 4.1.2 Linux常用命令-文件处理命令-目录处理命令 4.1.3 Linux常用命令-文件处理命令-文件处理命令 4.1.4 Linux常用命令-文件处理命令-链接命令 4.2.1 ...

    jdk-8u151-linux-x64.tar.gz

    在压缩包子文件的文件名称列表中,我们看到有两个文件:jdk-8u151-linux-x64.tar.gz和新建文本文档.txt。前者是我们的主要关注点,即JDK的压缩文件,通常包含bin目录下的可执行文件(如java、javac等)、lib目录下的...

    linux命令--RUN.pdf

    Linux命令行操作是Linux系统管理中的一项基本技能,它允许用户通过输入文本命令来操作计算机。Linux命令行是通过Shell程序来实现与计算机的交互的。本篇文档将详细介绍一些常用的Linux命令行操作,帮助用户更高效地...

    Linux 命令全集 - - Linux 命令全集

    Linux是世界上最广泛使用的开源操作系统之一,其核心在于命令行界面,通过各种命令来管理系统、文件和进程。本文将深入探讨Linux命令全集中的关键知识点,帮助用户更好地理解和使用Linux。 1. **基础命令** - `ls`...

    14-Java操作Linux命令分割合并文本文件1

    标题中的“14-Java操作Linux命令分割合并文本文件1”指的是使用Java编程语言来执行Linux命令,以实现对文本文件的分割和合并操作。在处理大文件时,由于内存限制,不能一次性将整个文件读入,因此需要采用分块处理的...

    cmake-3.23.1-linux-x86_64.tar.gz

    例如,可以使用`tar -zxvf cmake-3.23.1-linux-x86_64.tar.gz`命令。 3. **移动到适当位置**:解压后,通常会有一个名为cmake-3.23.1-linux-x86_64的目录,你可以选择将其移动到系统路径下的一个可执行文件目录,...

Global site tag (gtag.js) - Google Analytics