首页 » 信息技术 »

用cat在命令行创建文件

2019年2月14日 / 21次阅读
Bash

  • 打开支付宝,搜索“ 529018372 ”,领取专属红包!每日支付每日领。

我们常常使用cat命令来将某个文件的内容一口气打印出来查看,其实,cat命令还可以用来在命令行创建文件。

cat在命令行创建文件与vi不同,只能单行编辑,换行之后就不能再编辑前面的行;与echo编辑多行文件有点相似。

创建 test1.info 文件,按Ctrl+d退出:

[xinlin@localhost ~]$ cat > test1.info
this is test1.info
hello...
[xinlin@localhost ~]$ cat test1.info
this is test1.info
hello...

cat > file,将标准输入的内容写入file,所见即所得,Ctrl+d结束,适合交互式的创建文件。

 

可以使用另外一种很cool的方式来结束某个文件的编辑,即在cat命令中设置一个结束符,一般我们使用EOF。这就是我们常常见到的cat << EOF。

创建 test2.info 文件,使用EOF结束符:

[xinlin@localhost ~]$ cat > test2.info << EOF
> this is test2.info
> hello again...
> EOF
[xinlin@localhost ~]$ cat test2.info
this is test2.info
hello again...

用这种方式比Ctrl+d方式要清晰一点。每次换行之后,能看到一个换行提示符(>)。

把<< EOF放在前面也可以:

[xinlin@localhost ~]$ cat << EOF > test3.info
> this is test3.info
> hello anyway...
> EOF
[xinlin@localhost ~]$ cat test3.info
this is test3.info
hello anyway...

在EOF前后加引号也可以:

[xinlin@localhost ~]$ cat > test4.info << 'EOF'
> this is test4.info
> no more hello
> EOF
[xinlin@localhost ~]$ cat > test5.info << "EOF"
> this is test5.info
> HELLO in uppercase.
> EOF
[xinlin@localhost ~]$ cat test4.info test5.info
this is test4.info
no more hello
this is test5.info
HELLO in uppercase.

cat命令行里的引号,跟shell脚本中的引号不一样,只是引号而已,加不加都没关系,双引号也不能解析shell变量。

[xinlin@localhost ~]$ cat > test6.info << "EOF${key}"
> this is test6.info
> hi..
> EOF9
> EOF${key}
[xinlin@localhost ~]$ cat test6.info
this is test6.info
hi..
EOF9

可见,输入EOF9并不能结束输入。

同时,我们发现,EOF这三个字母其实并不是必须的,EOF只是一个习惯用法,End Of File,Linux系统内一切都是文件。其实,我们可以使用任意自己喜欢的结束符字符串。

[xinlin@localhost ~]$ cat > test7.info << abcde
> this is test7.info
> hi again
> abc
> abcd
> abcde
[xinlin@localhost ~]$ cat > test8.info << k
> this is test8.info
> hi all
> a
> b
> k
[xinlin@localhost ~]$ cat test7.info test8.info
this is test7.info
hi again
abc
abcd
this is test8.info
hi all
a
b

一个字母也可以作为结束符。

除了新建文件,还可以是对某个文件的追加写入:

[xinlin@localhost ~]$ cat >> test8.info << EOF  # 使用>>,追加写入
> C
> D
> E
> EOF
[xinlin@localhost ~]$ cat test8.info
this is test8.info
hi all
a
b
C
D
E

注意:使用Ctrl+d的方式退出和使用<< eof的方式退出,编写的文件不太一样:

[xinlin@ifos ~]$ cat > t.sh
echo '$-'
echo '$$'
echo "$-"
echo "$$"
[xinlin@ifos ~]$ cat t.sh
echo '$-'
echo '$$'
echo "$-"
echo "$$"
[xinlin@ifos ~]$ cat > t.sh << eof
> echo '$-'
> echo '$$'
> echo "$-"
> echo "$$"
> eof
[xinlin@ifos ~]$ cat t.sh
echo 'himBH'
echo '1638'
echo "himBH"
echo "1638"

使用<< eof的方式退出,无论如何都会做变量替换,要注意这个细节;

使用Ctrl+d的方式退出,所见即所得!

以上就是使用cat命令创建文件的总结。

本文链接:http://www.maixj.net/ict/cat-file-20136

相关文章

评论是美德


前一篇:
后一篇:

栏目精选

云上小悟,麦新杰的独立博客

Ctrl+D 收藏本页

栏目


©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有 备案号:苏ICP备14045477号-1。云上小悟网站部分内容来源于网络,转载目的是为了整合信息,收藏学习,服务大家,有些转载内容也难以判断是否有侵权问题,如果侵犯了您的权益,请及时联系站长,我会立即删除。

网站二维码
go to top