1. 程式人生 > >Linux 的 cat 命令各種用法

Linux 的 cat 命令各種用法

一、最簡單的用法。只檢視檔案內容:

:~# cat a.txt
aaaaaaaaa
bbbbbbbbccc
ddd
ccee
ee
root@abb:~#

二、查詢檔案中的內容

:~# cat a.txt | grep cc
bbbbbbbbccc
ccee

三、利用cat建立檔案

如果原來沒有 b.txt 檔案。那麼:

:~# cat >b.txt <<EOF
> EOF

輸入第一行後,輸入EOF,回車,就可以生成一個 b.txt 檔案。其中EOF是告訴 bash 哪個符號代表檔案結束。當然你也可以使用自己習慣的符號。

四、利用cat清空檔案內容

如果 c.txt 檔案有很多內容,而你想要清空的話,同樣可以使用上面提到的命令形式:

:~# cat >c.txt <<EOF
> EOF

五、利用cat向檔案中寫入內容,並覆蓋以前的內容。
下面程式碼的步驟是這樣的:先檢視到 c.txt 沒有內容,就向 c.txt 檔案裡寫入內容,然後又寫入新內容覆蓋掉。

:~# cat c.txt
:~# cat >c.txt <<EOF
> 1111111
> 2222222
> EOF
:~# cat c.txt
1111111
2222222
:~# cat >c.txt <<EOF
> 33333333 > EOF :~# cat c.txt 33333333 :~#

六、用 cat 命令向檔案中寫入內容的時候,對於 $ 符號的處理。

有些時候可能會利用cat命令生成一些 Shell 指令碼檔案。這個時候如果直接寫 調 的話:

:~# cat >d.sh <<EOF
> DATE=$(date +%Y%m%d)
> mkdir /root/$DATE
> EOF

那麼 $ 符號並沒有輸入到檔案中。檔案內容會變成如下的樣子

:~# cat d.sh
DATE=20161006 mkdir /root/

那麼如果我們要把 符號前面加 \ 。命令如下:

~# cat >d.sh <<EOF
> DATE=\$(date +%Y%m%d)
> mkdir /root/\$DATE
> EOF

這樣把 $ 轉義,就可以得到正常的檔案內容了:

:~# cat d.sh
DATE=$(date +%Y%m%d)
mkdir /root/$DATE

七、向檔案的尾部寫入內容。
與寫入新內容覆蓋原始檔相似。只是把原來的 > 換成 >> 即可。
可以像下面這樣在檔案尾部加入文字內容。

:~# cat >>a.txt <<EOF
> 11111
> 222222