NO.1
上节遗留了两个问题,本期限于篇幅,主要说说除了vim、sed、echo,还有什么方法可以追加文本内容?
答:
cat + 输出符“>>”。
cat不是用来查看文件的吗?还能用来编辑内容?
yes!
不只是编辑内容,有了输出符“>>”的助攻,cat至少有四种方法可以追加文本内容。
1、编辑
cat >> ./out.log
# 回车后开始编辑输入内容
我是姚毛毛,这是《Linux常用命令》
# 按 cntl+c 组合键结束编辑。
2、直接追加
cat >> ./out.log<<EOF
我是姚毛毛,这是《Linux常用命令》2
EOF
# 按 cntl+c 组合键结束编辑。
# 注:结尾的EOF要顶格,成对出现,可以其它字符代替。
3、文件追加
# 合并文件1.txt内容至out.log
cat 1.txt >> out.log
下为实例,后续例子按此方法测试,不再赘述。
# 创建1.txt,写入测试数据
[root@yaomm ~]# echo '我是姚毛毛,这是《Linux常用命令》3' >> 1.txt
# 查看1.txt文件内容
[root@yaomm ~]# cat 1.txt
我是姚毛毛,这是《Linux常用命令》3
# 合并文件1.txt内容至out.log
[root@yaomm ~]# cat 1.txt >> out.log
# 查看out.log 文件内容
[root@yaomm ~]# cat out.log
我是姚毛毛,这是《Linux常用命令》
我是姚毛毛,这是《Linux常用命令》2
我是姚毛毛,这是《Linux常用命令》3
4、文件合并
# 将out.log 1.txt这两个文件合并为新的文件2.txt,内容按顺序排列
cat out.log 1.txt > 2.txt
NO.2
那么,标题不是说7种吗?还有3种呢?
5、查找内容追加
使用grep + >>。
# grep查找文件内容追加到out.log 文件中
grep 'Linux' 1.txt >> out.log
其中,grep xxx 查找命令可以换成任何其他能输出文本内容的命令。
这个就千变万化了。其实跟案例3也可以算是一种。
6、cat + tee 文件追加
那就用到tee这个命令了。
tee -a 会输出内容到标准输出的同时,追加到文件file中。如果文件不存在,则创建;如果已经存在,就在末尾追加内容,而不是覆盖。是不是跟 >> 很像?
如果少了-a,则是覆盖。
# 读取 1.txt 合并至 out.log
cat 1.txt | tee -a out.log
7、echo + tee 内容追加
# 使用echo追加内容至out.log
echo "我是姚毛毛,这是《Linux常用命令》7" | tee -a out.log
NO.3
其实本期的命令看起来有7种,但实际上合并算一下,只有cat、>> 、tee -a这三种而已。
只是每种命令都有它发挥的场景,就看你怎么用了。
运用之妙,存乎一心尔。