linux程序cat本地文本文件,linux – 这里有cat的文件
當(dāng)cat沒(méi)有在命令行上給出文件名(或者文件名只是 – )時(shí),它會(huì)切換到從其標(biāo)準(zhǔn)輸入讀取.
這意味著
cat <
something something
END
cat會(huì)注意到它沒(méi)有給出文件名,并將繼續(xù)讀取here-document,它來(lái)自其標(biāo)準(zhǔn)輸入流.
您可以讓cat從其標(biāo)準(zhǔn)輸入和文件中讀取
cat - filename <
something something
END
這將導(dǎo)致here-document的內(nèi)容與filename的內(nèi)容連接在一起.如果參數(shù)的順序是文件名 – 那么這將是數(shù)據(jù)連接的順序.
請(qǐng)注意 – 以任何方式對(duì)shell都不是特殊的,并且特別是由cat實(shí)用程序(以及其他一些)解釋為“標(biāo)準(zhǔn)輸入”.如果您有一個(gè)名為的實(shí)際文件 – 您需要運(yùn)行cat,請(qǐng)使用cat ./-,即使用路徑指定文件名.
出于所有目的,您可以考慮將here-document直接輸入實(shí)用程序,作為創(chuàng)建臨時(shí)文件的簡(jiǎn)寫,然后使用附加到標(biāo)準(zhǔn)輸入流的實(shí)用程序調(diào)用該實(shí)用程序:
printf 'some contents' >tmpfile
utility
rm -f tmpfile
這里的文檔實(shí)際上可能不是這樣實(shí)現(xiàn)的(它可能是一個(gè)FIFO(命名管道)),但這并不是一種完全錯(cuò)誤的思考方式.
讀取bash源代碼,似乎特定的shell通過(guò)使用mkstemp()庫(kù)函數(shù)創(chuàng)建一個(gè)臨時(shí)文件來(lái)實(shí)現(xiàn)here-documents,如果它可用,否則它會(huì)嘗試創(chuàng)建一個(gè)隨機(jī)文件名來(lái)寫入.然后將文檔的內(nèi)容寫入該文件,并在標(biāo)準(zhǔn)輸入上提供數(shù)據(jù),無(wú)論它正在讀取它,就像它來(lái)自文件一樣,重定向?yàn)?/p>
總結(jié)
以上是生活随笔為你收集整理的linux程序cat本地文本文件,linux – 这里有cat的文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 下列计算机程序设计语言中不属于高级语言,
- 下一篇: linux中getchar函数用法,li