【Linux命令009】除了vim、sed、echo,竟然还有7种方法可以追加文本内容?

Scroll Down

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这三种而已。

只是每种命令都有它发挥的场景,就看你怎么用了。

运用之妙,存乎一心尔。