Linux命令-檔案管理篇-cat
阿新 • • 發佈:2019-01-05
1.cat 說明
cat 是一個文字檔案檢視和連線工具。檢視一個檔案的內容,用cat比較簡單,就是cat 後面直接接檔名。
2.使用許可權
所有使用者
<!-- more -->
3.cat 語法
- 語法格式
cat [-AbeEnstTuv] [--help] [--version] fileName
- 引數說明
-n 或 --number:由 1 開始對所有輸出的行數編號。
-b 或 --number-nonblank:和 -n 相似,只不過對於空白行不編號。
-s 或 --squeeze-blank:當遇到有連續兩行以上的空白行,就代換為一行的空白行。
-v 或 --show-nonprinting:使用 ^ 和 M- 符號,除了 LFD 和 TAB 之外。
-E 或 --show-ends : 在每行結束處顯示 $。
-T 或 --show-tabs: 將 TAB 字元顯示為 ^I。
-A, --show-all:等價於 -vET。
-e:等價於"-vE"選項;
-t:等價於"-vT"選項;
4.cat 例項
- 檢視/etc/bashrc的內容
[[email protected] ~]# cat /etc/bashrc
- 檢視/etc/目錄下的bashrc內容,並且對非空白行進行編號,行號從1開始
[[email protected] ~]# cat -b /etc/bashrc ... 70 SHELL=/bin/bash 71 # Only display echos from profile.d scripts if we are no login shell 72 # and interactive - otherwise just process them to set envvars 73 for i in /etc/profile.d/*.sh; do 74 if [ -r "$i" ]; then 75 if [ "$PS1" ]; then 76 . "$i" 77 else 78 . "$i" >/dev/null 79 fi 80 fi 81 done 82 unset i 83 unset -f pathmunge 84 fi 85 # vim:ts=4:sw=4
- 對/etc目錄中的profile的所有的行(包括空白行)進行編號輸出顯示
[[email protected] ~]# cat -n /etc/bashrc ... 65 66 # By default, we want umask to get set. This sets it for non-login shell. 67 # Current threshold for system reserved uid/gids is 200 68 # You could check uidgid reservation validity in 69 # /usr/share/doc/setup-*/uidgid file 70 if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then 71 umask 002 72 else 73 umask 022 74 fi 75 76 SHELL=/bin/bash 77 # Only display echos from profile.d scripts if we are no login shell 78 # and interactive - otherwise just process them to set envvars 79 for i in /etc/profile.d/*.sh; do 80 if [ -r "$i" ]; then 81 if [ "$PS1" ]; then 82 . "$i" 83 else 84 . "$i" >/dev/null 85 fi 86 fi 87 done 88 89 unset i 90 unset -f pathmunge 91 fi 92 # vim:ts=4:sw=4
- 檢視/etc/下的bashrc內容,並且在每行的結尾處附加$符號
[[email protected] ~]# cat -E /etc/bashrc
...
esac$
}$
$
# By default, we want umask to get set. This sets it for non-login shell.$
# Current threshold for system reserved uid/gids is 200$
# You could check uidgid reservation validity in$
# /usr/share/doc/setup-*/uidgid file$
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then$
umask 002$
else$
umask 022$
fi$
$
SHELL=/bin/bash$
# Only display echos from profile.d scripts if we are no login shell$
# and interactive - otherwise just process them to set envvars$
for i in /etc/profile.d/*.sh; do$
if [ -r "$i" ]; then$
if [ "$PS1" ]; then$
. "$i"$
else$
. "$i" >/dev/null$
fi$
fi$
done$
$
unset i$
unset -f pathmunge$
fi$
# vim:ts=4:sw=4$
- cat 加引數-n 和nl工具差不多,檔案內容輸出的同時,都會在每行前面加上行號
[[email protected] ~]# cat -n /etc/bashrc
[[email protected] ~]# nl /etc/bashrc
- cat 可以同時顯示多個檔案的內容,比如我們可以在一個cat命令上同時顯示兩個檔案的內容;
[[email protected] ~]# cat /etc/fstab /etc/bashrc
- cat 對於內容極大的檔案來說,可以通過管道|傳送到more 工具,然後一頁一頁的檢視;
[[email protected] ~]# cat /etc/fstab /etc/bashrc | more
5.cat 建立、連線檔案功能
- cat 有建立檔案的功能,建立檔案後,要以EOF或STOP結束;
[[email protected] ~]# cat > ng-sec.txt << EOF
[[email protected] ~]# cat >ng-sec.txt <<EOF
> hello
> this is cat test
> EOF
#說明:建立ng-sec.txt檔案
[[email protected] ~]# cat ng-sec.txt
hello
this is cat test
- 為剛剛建立的ng-sec.txt追加內容
[[email protected] ~]# cat >>ng-sec.txt <<EOF
> This is new contents for test2
> EOF
[[email protected] ~]# cat ng-sec.txt
hello
this is cat test
This is new contents for test2
# 說明:>>可以追加資訊到文件,可以看到已經追加了一行資訊
- 通過cat 連線多個檔案的內容並且輸出到一個新檔案中
假設我們有ng-sec01.txt、ng-sec02.txt,需要將他們檔案內容合併後輸出到ng-sec03.txt
注意:其原理是把兩個檔案的內容連線起來,然後建立ng-sec.txt檔案,並且把幾個檔案的內容同時寫入ng-sec03.txt中。特別注意的是,如果您輸入到一個已經存在的ng-sec03.txt檔案,會把該檔案內容清空。
[[email protected] ~]# cat sir01.txt sir02.txt sir03.txt > sir04.txt
[[email protected] ~]# cat ng-sec01.txt ng-sec02.txt > ng-sec03.txt
[[email protected] ~]# cat ng-sec03.txt
i am ng-sec01.txt
i am ng-sec02.txt
參考連結
runoob.com
aq1sw2的部落格
來源:https://segmentfault.com/a/1190000017766866