linux 弹出输入文本,Linux学习笔记(三)---Linux文本处理

本文详细介绍了Linux系统中常用的几个文本操作命令,包括cat用于查看文件内容,more和less提供分页显示,head显示文件开头部分,tail显示文件结尾部分。此外,还讲解了如何使用重定向操作将命令输出重定向到文件,包括标准输出和错误输出的重定向。这些命令和重定向技巧在日常的Linux系统管理和文件操作中非常实用。
摘要由CSDN通过智能技术生成

cat命令

cat 命令可以用来显示文本文件的内容(类似于 DOS 下的 type 命令),也可以把几个文件内容附加到另一个文件中,即连接合并文件。

cat 命令的基本格式如下:

[root@localhost ~]# cat [选项] 文件名

或者

#将文件 1 和文件2 的内容合并后输出到文件 3 中。

[root@localhost ~]# cat 文件1 文件2 > 文件3

而如果使用 "-n" 选项,则会显示行号。例如:

[root@localhost ~]# cat -n anaconda-ks.cfg

1 # Kickstart file automatically generated by anaconda.

2

3

4 #version=DEVEL

5 install

6 cdrom

…省略部分内容...

【例 2】将文件 file1.txt 和 file2.txt 的内容合并后输出到文件 file3.txt 中。

[root@localhost base]# ls

file1.txt file2.txt

[root@localhost base]# cat file1.txt

http://c.biancheng.net(file1.txt)

[root@localhost base]# cat file2.txt

is great(file2.txt)

[root@localhost base]# cat file1.txt file2.txt > file3.txt

[root@localhost base]# more file3.txt

#more 命令可查看文件中的内容

http://c.biancheng.net(file1.txt)

is great(file2.txt)

[root@localhost base]# ls

file1.txt file2.txt file3.txt

more命令

more 命令可以分页显示文本文件的内容,使用者可以逐页阅读文件中内容,此命令的基本格式如下:

[root@localhost ~]# more [选项] 文件名

head命令

head 命令可以显示指定文件前若干行的文件内容,其基本格式如下:

[root@localhost ~]# head [选项] 文件名

该命令常用选项以及各自的含义,如表 1 所示。

表 1 head 命令常用选项及含义

选项

含义

-n K

这里的 K 表示行数,该选项用来显示文件前 K 行的内容;如果使用 "-K" 作为参数,则表示除了文件最后 K 行外,显示剩余的全部内容。

-c K

这里的 K 表示字节数,该选项用来显示文件前 K 个字节的内容;如果使用 "-K",则表示除了文件最后 K 字节的内容,显示剩余全部内容。

-v

显示文件名;

注意,如不设置显示的具体行数,则默认显示 10 行的文本数据。

【例 1】基本用法。

[root@localhost ~]# head anaconda-ks.cfg

head 命令默认显示文件的开头 10 行内容。如果想显示指定的行数,则只需使用 "-n" 选项即可,例如:

[root@localhost ~]# head -n 20 anaconda-ks.cfg

这是显示文件的开头 20 行内容,也可以直接写 "-行数",例如:

[root@localhost ~]# head -20 anaconda-ks.cfg

less命令

less 命令的作用和 more 十分类似,都用来浏览文本文件中的内容,不同之处在于,使用 more 命令浏览文件内容时,只能不断向后翻看,而使用 less 命令浏览,既可以向后翻看,也可以向前翻看。

不仅如此,为了方面用户浏览文本内容,less 命令还提供了以下几个功能:

使用光标键可以在文本文件中前后(左后)滚屏;

用行号或百分比作为书签浏览文件;

提供更加友好的检索、高亮显示等操作;

兼容常用的字处理程序(如 Vim、Emacs)的键盘操作;

阅读到文件结束时,less 命令不会退出;

屏幕底部的信息提示更容易控制使用,而且提供了更多的信息。

less 命令的基本格式如下:

[root@localhost ~]# less [选项] 文件名

tail命令

tail 命令和 head 命令正好相反,它用来查看文件末尾的数据,其基本格式如下:

[root@localhost ~]# tail [选项] 文件名

此命令常用的选项及含义如表 1 所示。

表 1 tail 命令选项及含义

选项

含义

-n K

这里的 K 指的是行数,该选项表示输出最后 K 行,在此基础上,如果使用 -n +K 则表示从文件的第 K 行开始输出。

-c K

这里的 K 指的是字节数,该选项表示输出文件最后 K 个字节的内容,在此基础上,使用 -c +K 则表示从文件第 K 个字节开始输出。

-f

输出文件变化后新增加的数据。

Linux重定向(输入输出重定向)

Linux 中标准的输入设备默认指的是键盘,标准的输出设备默认指的是显示器。输入、输出重定向,从字面意思去理解,也就是:

输入重定向:指的是重新指定设备来代替键盘作为新的输入设备;

输出重定向:指的是重新指定设备来代替显示器作为新的输出设备。

通常是用文件或命令的执行结果来代替键盘作为新的输入设备,而新的输出设备通常指的就是文件。

表 1 输入重定向中用到的符号及作用

命令符号格式

作用

命令 < 文件

将指定文件作为命令的输入设备

命令 << 分界符

表示从标准输入设备(键盘)中读入,直到遇到分界符才停止(读入的数据不包括分界符),这里的分界符其实就是自定义的字符串

命令 < 文件 1 > 文件 2

将文件 1 作为命令的输入设备,该命令的执行结果输出到文件 2 中。

【例 1】

以 /etc/passwd 文件(存储了系统中所有用户的基本信息)为例,执行如下命令:

[root@localhost ~]# cat /etc/passwd

#这里省略输出信息,读者可自行查看

[root@localhost ~]# cat < /etc/passwd

#输出结果同上面命令相同

【例 2】

[root@localhost ~]# cat << 0

>c.biancheng.net

>Linux

>0

c.biancheng.net

Linux

可以看到,当指定了 0 作为分界符之后,只要不输入 0,就可以一直输入数据。

【例 3】

首先,新建文本文件 a.tx,然后执行如下命令:

[root@localhost ~]# cat a.txt

[root@localhost ~]# cat < /etc/passwd > a.txt

[root@localhost ~]# cat a.txt

#输出了和 /etc/passwd 文件内容相同的数据

可以看到,通过重定向 /etc/passwd 作为输入设备,并输出重定向到 a.txt,最终实现了将 /etc/passwd 文件中内容复制到 a.txt 中。

和输入重定向不同的是,输出重定向还可以细分为标准输出重定向和错误输出重定向两种技术。

在此基础上,标准输出重定向和错误输出重定向又分别包含清空写入和追加写入两种模式。因此,对于输出重定向来说,其需要用到的符号以及作用如表 2 所示。

表 2 输出重定向用到的符号及作用

命令符号格式

作用

命令 > 文件

将命令执行的标准输出结果重定向输出到指定的文件中,如果该文件已包含数据,会清空原有数据,再写入新数据。

命令 2> 文件

将命令执行的错误输出结果重定向到指定的文件中,如果该文件中已包含数据,会清空原有数据,再写入新数据。

命令 >> 文件

将命令执行的标准输出结果重定向输出到指定的文件中,如果该文件已包含数据,新数据将写入到原有内容的后面。

命令 2>> 文件

将命令执行的错误输出结果重定向到指定的文件中,如果该文件中已包含数据,新数据将写入到原有内容的后面。

命令 >> 文件 2>&1或者命令 &>> 文件

将标准输出或者错误输出写入到指定文件,如果该文件中已包含数据,新数据将写入到原有内容的后面。注意,第一种格式中,最后的 2>&1 是一体的,可以认为是固定写法。

【例 4】新建一个包含有 "Linux" 字符串的文本文件 Linux.txt,以及空文本文件 demo.txt,然后执行如下命令:

[root@localhost ~]# cat Linux.txt > demo.txt

[root@localhost ~]# cat demo.txt

Linux

[root@localhost ~]# cat Linux.txt > demo.txt

[root@localhost ~]# cat demo.txt

Linux

[root@localhost ~]# cat Linux.txt >> demo.txt

[root@localhost ~]# cat demo.txt

Linux

Linux

[root@localhost ~]# cat b.txt > demo.txt

cat: b.txt: No such file or directory

[root@localhost ~]# cat b.txt 2> demo.txt

[root@localhost ~]# cat demo.txt

cat: b.txt: No such file or directory

[root@localhost ~]# cat b.txt 2>> demo.txt

[root@localhost ~]# cat demo.txt

cat: b.txt: No such file or directory

cat: b.txt: No such file or directory

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值