linux提供more和vi命令对文件的操作,如果只想查看文件,那推荐使用more命令,more命令只有查看文件的功能。
1. more 命令
查看文件内容。
syntax:
more filename ;
2. vi 命令
编辑文件的内容。
syntax:
vi filename ;
如果该文件存在,则界面会显示文件内容,键盘输入 i (即insert,插入的意思) ,进入了编辑模式,就可以修改文件内容。
如果想退出文件时,按“ESC"键,进入命令模式,按“:”进入文件末行模式, 在末行模式,可使用以下命令退出:
:q -- 直接退出,当文件内容已被修改,则不能使用该命令
:wq --- 保存后退出
:x -- 同":wq"
:q! -- 不保存内容,强制退出
在冒号:进入命令行模式后,输入set nu
以下只是shell文件的片段:
17 x=$(myfun "$@")
18
19 printf "result: %s\n" "${x}"
~
~
~
~
~
~
~
~
~
~
~
:set nu
输入set nu后,则编辑模式下也可以看到行号了。
在这里介绍个如何快速在编辑模式下,快速定位到指定内容:
1)输入命令vim进入编辑模式
vim file1.txt
2)输入空格,接着输入 /<需要定位查找的内容> ,然后回车键,光标便可移到指定内容处,接着输入 i键,进入插入状态
注意,
/<需要定位查找的内容>,如果需要查找内容中包含空格,不需要在内容两边双引号,看下面示例
下面这个是包含有空格,是正确的
/protected-mode yes
下面这个是不正确的
/"protected-mode yes"
3)如果有多个匹配的地方,可以输入n键,便可以定位到下一个匹配处。
3:cat 命令
cat file1.txt ;
显示文件file1.txt的内容。
cat -n file1.txt ;
显示文件file1.txt的内容,同时显示行号。
cat file1 file2 > file3 ;
该命令把file1和file2的内容结合起来再重定向>到file3文件中。
注意:cat命令是把文件的内容全部显示出来的,如果文件的内容过多,查看起来不够方便,可以使用more命令。
4:tr 命令
语法:
tr [ options ] source-char-list replace-char-list < input-file
用途:
转换字符。例如,将大写字符转换成小写。选项可让你指定所要删除的字符,以及将一串重复出现的字符浓缩成一个。
options的选项:
-c 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII。
-d 删除字符串1中所有输入字符。
-s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。
input-file是转换文件名。虽然可以使用其他格式输入,但这种格式最常用。
4.1 字符范围
指定字符串1或字符串2的内容时,只能使用单字符或字符串范围或列表。
[a-z] a-z内的字符组成的字符串。
[A-Z] A-Z内的字符组成的字符串。
[0-9] 数字串。
\octal 一个三位的八进制数,对应有效的ASCII字符。
[O*n] 表示字符O重复出现指定次数n。因此[O*2]匹配OO的字符串。
tr中特定控制字符的不同表达方式
速记符含义八进制方式
\a Ctrl-G 铃声\007
\b Ctrl-H 退格符\010
\f Ctrl-L 走行换页\014
\n Ctrl-J 新行\012
\r Ctrl-M 回车\015
\t Ctrl-I tab键\011
\v Ctrl-X \030
4.2 例子
如,删除文件my.txt的所有a字符,保存到new_my.txt文件
tr -d a < my.txt > new_my.txt
删除所有换行符:
tr -d '\n' < my.txt > new_my.txt
将文件my.txt的a字符替换成b字符:
tr -c a b < my.txt > new_my.txt
..