本教程操作環(huán)境:linux5.9.8系統(tǒng)、Dell G3電腦。
linux可以導(dǎo)出文件內(nèi)容嗎?
【資料圖】
可以。
Linux 中 用cat 輸出文件內(nèi)容
功能:把一個(gè)或者多個(gè)文件(或者標(biāo)準(zhǔn)輸入)連接在一起,并標(biāo)準(zhǔn)輸出。(Concatenate FILE(s), or standard input, to standard output.)
cat命令常用來顯示文件內(nèi)容,或者將幾個(gè)文件連接起來顯示,或者從標(biāo)準(zhǔn)輸入讀取內(nèi)容并顯示。它常與重定向符號(hào)配合使用。cat是Concatenate的縮寫。
Linux 有三個(gè)特別文件,分別 -標(biāo)準(zhǔn)輸入 即 STDIN , 在 /dev/stdin 一般指鍵盤輸入, shell里代號(hào)是 0 -標(biāo)準(zhǔn)輸出 STDOUT, 在 /dev/stdout 一般指終端(terminal), 就是顯示器, shell里代號(hào)是 1 -標(biāo)準(zhǔn)錯(cuò)誤 STDERR, 在 /dev/stderr 也是指終端(terminal), 不同的是, 錯(cuò)誤信息送到這里 shell里代號(hào)是 2語法:cat [選項(xiàng)] [文件]
| 短選項(xiàng) | 長選項(xiàng) | 涵義 |
|---|---|---|
| -A | --show-all | 等于-vET |
| -b | --number-nonblank | 對(duì)非空輸出行編號(hào) |
| -e | 等于-vE | |
| -E | --show-ends | 在每行結(jié)束處顯示"$" |
| -n | --number | 對(duì)輸出的所有行編號(hào) |
| -s | --squeeze-blank | 不輸出多行空行 |
| -t | 與-vT 等價(jià) | |
| -T | --show-tabs | 將跳格字符顯示為^I |
| -v | --show-nonprinting | 使用^ 和M- 引用,除了LFD和 TAB 之外 |
輸出文件內(nèi)容 顯示文件FILE的內(nèi)容 cat FILE 顯示文件FILE的內(nèi)容加上行號(hào),需要加上參數(shù)-n。行號(hào)從1開始。使用-n參數(shù)時(shí),所有空行也會(huì)顯示行號(hào) cat -n FILE 忽略掉空行,用-b cat -b FILE 當(dāng)遇到有連續(xù)兩行以上的空白行,就代換為一行的空白行,可以使用-s參數(shù) cat -s FILE 保存內(nèi)容 將標(biāo)準(zhǔn)輸入保存到文件FILE中,如果文件已經(jīng)存在,則覆蓋掉原來的 cat >FILE 將標(biāo)準(zhǔn)輸入追加到文件FILE末尾 cat >>FILE 合并文件 將兩個(gè)文件FILE1和FILE2的內(nèi)容合并為一個(gè)文件FILE cat FILE1 FILE2 >FILE
從標(biāo)準(zhǔn)輸入創(chuàng)建文件 [root@web setup]# code>cat >1.txt Hello Bash Linux 鍵盤(快捷鍵)Ctrl+D 保存文件 [root@web setup]# ls -l 1.txt -rw-r--r-- 1 root root 17 11-02 21:32 1.txt [root@web setup]# cat 1.txt 顯示1.txt文本內(nèi)容。標(biāo)準(zhǔn)輸出 Hello Bash Linux [root@web setup]# cat <1.txt Hello Bash Linux [root@web setup]# 使用heredoc來生成文件 注意:粗體部分、here doc可以進(jìn)行字符串替換 [root@web setup]# cat >2.txt <<EOF > Hello > Bash > Linux > PWD=$(pwd) > EOF [root@web setup]# ls -l 2.txt -rw-r--r-- 1 root root 33 11-02 21:35 2.txt [root@web setup]# cat 2.txt Hello Bash Linux PWD=/root/setup [root@web setup]# 輸出行號(hào) [root@web setup]# cat -n 1.txt 1 Hello 2 Bash 3 Linux [root@web setup]# nl 1.txt 1 Hello 2 Bash 3 Linux [root@web setup]# 在bash腳本中把文件內(nèi)容加載到變量中 [root@web ~]# TEXT=$(cat .bash_profile) [root@web ~]# [root@web ~]# echo "$TEXT" # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin export PATH unset USERNAME [root@web ~]#
在linux shell腳本中我們經(jīng)常見到類似于cat << EOF的語句,不熟悉的童鞋可能覺得很奇怪:EOF好像是文件的結(jié)束符,用在這里起到什么作用?EOF是“end of file”,表示文本結(jié)束符。
<<EOF (內(nèi)容) EOF
EOF在這里沒有特殊的含義,你可以使用FOE或OOO等(當(dāng)然也不限制在三個(gè)字符或大寫字符)??梢园袳OF替換成其他東西,意思是把內(nèi)容當(dāng)作標(biāo)準(zhǔn)輸入傳給程結(jié)合這兩個(gè)標(biāo)識(shí),即可避免使用多行echo命令的方式,并實(shí)現(xiàn)多行輸出的結(jié)果。接下來,簡單描述一下幾種常見的使用方式及其作用:
cat <<EOF,以EOF輸入字符為標(biāo)準(zhǔn)輸入開始cat >filename,創(chuàng)建文件,并把標(biāo)準(zhǔn)輸入輸出到filename文件中,以ctrl+d作為輸入。cat >filename <<EOF,以EOF作為輸入結(jié)束,和ctrl+d的作用一樣。# cat >test.sh <<EOF> #!/bin/bash> #you Shell script writes here.> EOF
1、追加文件 #cat <<EOF >>test.sh
2、追加文件,換一種寫法 # cat >>test.sh <<EOF
3、EOF只是標(biāo)識(shí),不是固定的。這里的“HHH”就代替了“EOF”的功能。結(jié)果是相同的。 # cat <<HHH >iii.txt> sdlkfjksl > sdkjflk > asdlfj > HHH
4、非腳本中。如果不是在腳本中,我們可以用Ctrl+D輸出EOF的標(biāo)識(shí) # cat >iii.txtskldjfklj sdkfjkl kljkljklj kljlk Ctrl+D
相關(guān)推薦:《Linux視頻教程》
以上就是linux可以導(dǎo)出文件內(nèi)容嗎的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!
關(guān)鍵詞: