文件编辑复制(Linux命令操作实例)
一:命令列表
cp 复制文件命令
col 过滤控制字符
colrm 删除指定列内容并显示到标注输出
expr 手工命令行计数器
fmt 编排文本文件
fold 限制文件列宽
vi 文本文件编辑工具
vim 文本编辑工具
ispell 拼写错误检查器
grep、egrep、fgrep、rgrep 查找文件里符合条件的字符串
join 连接两个文件中的指定内容
uniq 检查及删除文本文件中重复出现的
look 查询英文单字
sort 将文本文件内容加以排序
spell 拼写检查
touch 新建一个不存在的文件
tee 从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。
mv 移动或重命名文件或目录
tr 删除文件中控制字符或进行字符转换
rm 删除文件或目录命令
tmpwatch 删除指定的目录中一段时间未访问的文件
wc 文件内容统计
二、实例解说
名称:cp
功能:复制文件命令
语法:cp [-adfilprsu] 来源(source) 目的(destination)
参数:
a :相当于 -pdr 的意思;
-d :若来源文件为连结文件的属性(linkfile),则复制连结文件属性而非档案本身;
-f :为强制 (force) 的意思,若有重复或其它疑问时,不会询问使用者,而强制复制;
-i :若目的檔(destination)已经存在时,在覆盖时会先询问是否真的动作;
-l :进行硬式连结 (hard link) 的连结档建立,而非复制档案本身;
-p :连同档案的属性一起复制过去,而非使用预设属性;
-r :递归持续复制,用于目录的复制行为;
-s :复制成为符号连结文件 (symboliclink),亦即『快捷方式』档案;
-u :若 destination 比 source 旧才更新destination。
范例:
##将/var/log/wtmp目录下的所有文件复制到当前的wtmp_2目录下,并保持源文件的符号连接链接。
[root@localhost ~]# cp –ar /var/log/wtmp/* wtmp_2
cp -u ~/.bashrc /tmp/bashrc #若 ~/.bashrc 比 /tmp/bashrc则复制
cp –iv -p f1.c /backup #将文件f1.c备份到目录/backup下并保持属主和访问权限
cp -b f1.c /backup #将文件f1.c备份到/backup下
cp -b -S$ f1.c /backup #自定义备份文件的后缀字符串为“$”
名称:colrm
功能:删除指定列内容并显示到标注输出
语法:colrm [开始行数编号<结束行数编号>]
参数:
范例:
#1第3列之后的删去,再输出
[root@localhosttestlib]# colrm 3
#2把file1中第3列之后的删去,再输出(文件中的内容不会变化)
[root@localhosttestlib]# colrm 3 < f1
#3除去第2到第4列的内容之后,再输出
[root@localhosttestlib]# colrm 2 4 <f1
名称:expr
功能:手工命令行计数器
语法:expr Expression
参数:
范例:
#1计算字串长度
[root@localhosttestlib]# expr length "this is test"
#2抓取字串
[root@localhosttestlib]# expr substr "this is test " 9 11
#3抓取第一个字符数字串出现的位置
[root@localhosttestlib]# expr index "sa123saa12" a
名称:grep
功能:搜索文件中的字符串
语法:grep [参数] [字符串或正则表达式][文件名…]
在grep命令中输入字符串参数时,最好将其用双引号括起来。在调用变量或字符串的时候,也应该使用双引号,例如:grep “$MYNAME”。在调用模式匹配时,应该使用单引号。
参数:
-c 只显示有多少行匹配,而不具体显示匹配的行。
-h 不显示文件名。
-i 在字符串比较的时候忽略大小写。
-l 只显示包含匹配模板的行的文件名清单。
-L 只显示不包含匹配模板的行的文件名清单。
-n 在每一行前面打印改行在文件中的行数。
-v 反向检索,只显示不匹配的行。
-w 只显示完整单词的匹配。
-x 只显示完整行的匹配。
-r/-R 如果文件参数是目录,该选项将递归搜索该目录下的所有子目录和文件。
--color=auto :可以将找到的关键词部分加上颜色的显示
范例:
^M 以M开头的行,^表示开始的意思
M$ 以M结尾的行,$表示结束的意思
^[0-9] 以数字开始的行,[]内可列举字母
^[124ab] 以1,2,4,a,或b开头的行
^b.503 句点表示任一字母
* 星号表示0个以上的字母(可以没有)
+ 加号表示1个以上的字母
. 斜线可以去掉特殊意义
ls -l | grep ^d #1只显示当前目录下的目录文件
ls -l | grep ^[^d] #2显示当前目录下的除目录文件以为的文件
who | grep –v root #3显示除根用户外其他登陆本机的用户
grep -n “yp” yp.conf #4查询目标文件中特定的字符串,显示行号
#5搜索查询结构化的通讯簿(address), 空格+13[0-2]开始的单个字段的用户信息,常用于结构化文件的查询例子。
grep “ 13[0-2]” address
grep -in ^s address//查询所有以s开头用户的联系方式
#6将/etc/passwd,有出现 root 的行取出来,同时显示行号,颜色显示
[root@localhost ~]# grep –n --color=auto root /etc/passwd
#7用 dmesg 列出核心信息,再以grep 找出内含 eth 那行,要将捉到的关键字显色,且加上行号来表示。
[root@localhost ~]#dmesg | grep -n--color=auto 'eth'
#8在关键字所在行的前两行与后三行也一起捉出来显示
[root@localhost ~]# dmesg | grep -n -A3 -B2--color=auto 'eth'
[root@localhost ~]#grep ‘hello’ * #9在当前目录搜索带'hello'行的文件
#10在当前目录及其子目录下搜索'hello'行的文件
[root@localhost ~]#grep -r ‘hello’ *
注意:grep命令不能同时指定两个固定的字符串,所有下面我们再介绍egrep命令
更多的细节见《命令实例专题》
名称:egrep
功能:实现多个字符串匹配搜索
语法:egrep [参数] [字符串或正则表达式] [文件名…]
范例
egrep “sxx|lhw” address #搜索address中simon和wxp的用户的信息
名称:touch
功能:新建一个不存在的文件
语法:touch [参数] [文件名]
范例
touch abc1 abc2 #创建两个文件abc1,abc2
touch -r a 123 #利用a文件的时间属性设置新创建文件“123”的时间属性
名称:mv
功能:移动或重命名文件或目录
语法:mv [options] source dest
范例
mv -i *.c /tmp #将当前目录下C文件移动到/tmp目录
mv -i abc1 /home/abc1-new # abc1移动到/home目录下面,并重新命名为abc1-new。
mv -i hhwork2 /backup #移动整个目录下的文件到指定的目标目录
mv old new #为old目录名称重新命名new
[root@localhost ~]#mv oldfile newfile #为oldfile文件名重新命名newfile
名称:rm
功能:删除文件或目录命令
语法:rm [-dfirv][文件或目录...]
范例
rm -i *.c 删除前逐一询问确认
rm -f ./*.c 直接删除,无需逐一确认。
rm -r ./*.c 将目录及以下之c文件亦逐一删除。
名称:tmpwatch
功能:删除指定的目录中一段时间未访问的文件
语法:tmpwatch [-afqv][--test][超期时间][目录...]
范例:
tmpwatch --test 5 /tmp 仅作测试,并不真的删除文件或目录
tmpwatch -afv 5 /tmp 强制删除所有文档或目录,其效果类似rm指令的-f参数
名称:sort
功能:可针对文本文件的内容,以行为单位来排序
语法:sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>] [文件]
参数:
-b 忽略每行前面开始出的空格字符。
-c 检查文件是否已经按照顺序排序。
-d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
-f 排序时,将小写字母视为大写字母。
-i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
-m 将几个排序好的文件进行合并。
-M 将前面3个字母依照月份的缩写进行排序。
-n 依照数值的大小排序。
-o<输出文件> 将排序后的结果存入指定的文件。
-r 以相反的顺序来排序。
-t<分隔字符> 指定排序时所用的栏位分隔字符。
+<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
范例:
#1保存排序后的文件内容
[root@localhost ~]# sort txt >result
#2以第2个字段作为排序关键字对文件txt的内容进行排序
[root@localhost ~]#sort +1-2 exampl
#3利用管道将当前工作目录中的文件送给Sort进行排序,filesize 从大到小
[root@localhost ~]# ls -l | sort +4 -5 -n
#对进程排序
[root@localhost ~]#ps -e -o " comm pidtime"|sort -d
名称:wc
功能:统计给定文件中的字节数、字数、行数。
语法:wc [选项] 文件…
wc filename
第一列显示行数,第二列显示单词数,第三列显示字符数。
参数:
- c 统计字节数。
- l 统计行数。
- w 统计字数。
范例:
#统计/etc/passwd
[root@localhost ~]# wc /etc/passwd
[root@localhost ~]# wc -lcw /etc/passwd
[root@localhost ~]# wc -lcwm /etc/passwd
#统计当前目录的文件数
[root@localhost ~]# ls -l | wc -l