日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

3.1 cat:合并文件或查看文件内容

發布時間:2024/9/3 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 3.1 cat:合并文件或查看文件内容 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

cat 命令

可以理解為英文單詞concatenate的縮寫,其功能是連接多個文件并且打印到屏幕輸出,或者重定向到指定的文件中。此命令常用來顯示單個文件內容,或者將幾個文件內容連接起來一起顯示,還可以從標準輸入中讀取內容并顯示,生產環境中它常與重定向或追加符號配合使用。 cat命令的記憶方法:cat的中文意思是貓,可理解為“瞄”一下文件內容,即顯示文件內容。cat具備5大常用功能,特整理為如表3-1所示。 1.查看文件內容 例如:cat file.txt,這是cat最基本的功能之一 2.把多個文件合并成一個 例如:cat filel.txt file2.txt > newfile.txt 3.創建編輯新文件 例如:輸入cat>filel.txt,后面接要編輯的內容,使用快捷鍵Ctrl+d或Ctrl+c可結束編輯,此功能應用不多,了解即可 4.非交互式的編輯或追加內容到文件尾部這是生產工作中最重要的一個應用了,所以必須要熟練掌握,這里先給一個命令格式:cat>>file.txt<<EOFI love linuxEOF5.清空文件內容 例如:使用cat /dev/null>file.txt命令就可以把文件內容清空,但是文件還是存在的,這個功能生產工作中也會用到

cat命令的參數選項及說明

-n?? ?從1開始對所有輸出的內容按行編號 -b?? ?和-n選項功能類似,但會忽略顯示空白行行號 -s?? ?當遇到有連續兩行以上的空白行時,就替換為一行空白行 -A?? ?等價于-vET三個選項的功能之和 -e????等價于-vE -E?? ?在每一行的行尾顯示$符號 -t?? ?與-vT等價 -T?? ?將Tab字符顯示為1 -v?? ?除了LFD和TAB之外,使用^和M-引用 執行如下的完整命令生成cat.txt文件內容 cat >cat.txt<<EOF welcome to learn linux love linux forever EOF #<==這里要按回車才能結束,另外,EOF必須成對出現,但也可以用別的成對標簽來替換。例如:lewen字符標簽,默認情況下,結尾的EOE必須要頂格寫。cat >cat.txt<<-EOF #<==如果cat后面使用了-符號,則結尾的EOF可以不用頂格,但要用tab縮進。welcome to learn linuxlove linux forever,my blog\'s site is http://www.wenyule.topEOF執行過程 [root@cs6-mini ~]# cat >cat.txt<<EOF > > > welcome to learn linux > > love linux forever,my blog\'s site is http://www.wenyule.top > > >bye > EOF
直接執行cat命令,不帶任何選項。 [root@cs6-mini ~]# cat cat.txtwelcome to learn linuxlove linux forever,my blog\'s site is http://www.wenyule.topbye
執行cat命令,分別帶-n及-b選項,并對比區別 [root@cs6-mini ~]# cat -n cat.txt1 2 3 welcome to learn linux4 5 love linux forever,my blog\'s site is http://www.wenyule.top6 7 8 bye [root@cs6-mini ~]# cat -b cat.txt1 welcome to learn linux2 love linux forever,my blog\'s site is http://www.wenyule.top3 bye -b選項和-n選項類似,但是,-b選項并不對空行編號。??

執行cat命令,帶-E選項

[root@cs6-mini ~]# cat -E cat.txt $ $ welcome to learn linux$ $ love linux forever,my blog\'s site is http://www.wenyule.top$ $ $ bye$#<=說明:從上面的例子可以看出,-E選項就是把文件結尾的隱藏結束標識符$符號顯示出來。即使是空行,結尾也是有結束標識符的,這一點大家要注意 這個小例子更好地說明了即使是空行結尾也是有標識符S的。因此,在計算文件占用空間時,要注意這點。 -A(-vET),-e(-vE)這兩個選項都包含-E選項,因此,其和-E的功能類似,但-v、-T這兩個選項在工作中使用得不多,了解一下就好了。 [root@cs6-mini ~]# cat -A cat.txt $ $ welcome to learn linux$ $ love linux forever,my blog\'s site is http://www.wenyule.top$ $ $ bye$ [root@cs6-mini ~]# cat -e cat.txt $ $ welcome to learn linux$ $ love linux forever,my blog\'s site is http://www.wenyule.top$ $ $ bye$

執行cat 命令,帶-s選項

[root@cs6-mini ~]# cat -s cat.txtwelcome to learn linuxlove linux forever,my blog\'s site is http://www.wenyule.top#由于-s選項的原因,變成一個空行了。 bye 從上面的例子可以看出,-s選項就是把兩個以上的空行變成一個空行,如果文件中連續的空行有很多,那么這個選項可以讓文件顯示得更加精煉易讀。 但是在實際生產工作中,我們還是習慣于使用grep -v "^S" cat.txt 過濾掉所有的空行(一個空行都不留),從而使得顯示更加緊湊一些. [root@cs6-mini ~]# grep -v "^$" cat.txt welcome to learn linux love linux forever,my blog\'s site is http://www.wenyule.top bye

執行cat命令編輯新文件

[root@cs6-mini ~]# cat > cat.txt hi,here is linux os[root@cs6-mini ~]# cat cat.txt hi,here is linux os 這里是利用cat和“>”重定向將標準輸出定向到文件的,這是一個特殊的編輯文件的方法。這里有幾個問題需要注意,具體如下。 結束編輯可以用快捷鍵Ctrl+d或Ctrl+c退出,但是必須要先執行回車,將光標定位到新的未輸入的行才行。 使用此種方式輸入時,會發現如果輸入錯了,只按退格鍵(Backspace)將會無法刪除,需要按住“Ctrl+退格鍵”才能刪除。 此操作為特殊編輯方法,作為擴展知識點提及,實際生產環境中使用得很少。

執行cat命令連接并顯示多個文件

[root@cs6-mini ~]# cat test1.txt test2.txt test1 file test2 file 這樣兩個文件會一起顯示,但還是有先后順序的,前面的test.txt的內容會優先顯示。

利用cat實現一鍵優化Linux系統腳本

這是使用cat命令實現非交互式地在文件結尾增加內容的功能。下面的優化腳本是批量修改配置文件的方法,是生產環境中經常會用到的用法,要熟練掌握才好。 下面以一鍵優化腳本中的一部分Linux服務器內核選項為例來說明cat的功能。 所謂內核優化,主要是在Linux系統中針對業務服務應用而進行的系統內核選項優化,優化并無特殊的標準,下面就以常見的生產環境Linux的內核優化為例進行講解,僅供大家參考。 #!/bin/bash /bin/cp /etc/sysctl.conf /etc/sysctl.conf.'date +%F_%T' #<==備份 sysctl.conf cat>>/etc/sysctl.conf<<EOF #<修改sysctl.conf #added by lewen at 2019 start net.ipv4.tcp_fin_timeout = 2 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_keepalive_time = 600 net.ipv4.ip_local_port_range = 4000 65000 net.ipv4.tcp_max_syn_backlog = 16384 net.ipv4.tcp_max_tw_buckets = 36000 net.ipv4.route.gc_timeout = 100 net.ipv4.tcp_syn_retries = 1 net.ipv4.tcp_synack_retries = 1 net.core.somaxconn = 16384 net.core.netdev_max_backlog = 16384 net.ipv4.tcp_max_orphans = 16384 #end EOF sysctl -p &>/dev/null #<==加載sysctl.conf [root@cs6-mini ~]# vim opt_sysctl.sh [root@cs6-mini ~]# sh opt_sysctl.sh [root@cs6-mini ~]# tail -16 opt_sysctl.sh net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_keepalive_time = 600 net.ipv4.ip_local_port_range = 4000 65000 net.ipv4.tcp_max_syn_backlog = 16384 net.ipv4.tcp_max_tw_buckets = 36000 net.ipv4.route.gc_timeout = 100 net.ipv4.tcp_syn_retries = 1 net.ipv4.tcp_synack_retries = 1 net.core.somaxconn = 16384 net.core.netdev_max_backlog = 16384 net.ipv4.tcp_max_orphans = 16384 #end EOF sysctl -p &>/dev/null #<==加載sysctl.conf

利用cat在腳本中顯示幫助菜單

[root@cs6-mini scripts]# cat exportfs_usage.sh #!/bin/bashexportfs_usage() {cat <<ENDUSAGE:$0 {start|stop|monitor|status|validate-all} END } exportfs_usage[root@cs6-mini scripts]# sh exportfs_usage.shUSAGE:exportfs_usage.sh {start|stop|monitor|status|validate-all} 這里的cat命令可以用echo命令來代替,對于單行的內容顯示和追加內容,使用echo命令是非常合適的,cat的優勢是針對多行文本內容進行編輯,或者在已有內容的結尾追加新內容。

利用cat在腳本中顯示內容選擇菜單

[root@cs6-mini scripts]# cat menu.sh#!/bin/bashmenu(){cat <<END1.[apple]2.[pear]3.[banana]4.[cherry]5.[orange]please select one that you like: END } menu [root@cs6-mini scripts]# sh menu.sh1.[apple]2.[pear]3.[banana]4.[cherry]5.[orange]please select one that you like: 為了實現自動化運維,有時高級運維人員不得不通過腳本把操作寫好,然后讓組內的初級運維或非運維的同事,通過傻瓜式的菜單選擇,來完成相應的工作,進而提升工作效率。 上面的腳本,從美感的角度來看,還是有些缺陷的。比如: 改進后的腳本 [root@cs6-mini scripts]# cat menu.sh#!/bin/bashmenu(){cat <<-END1.[apple]2.[pear]3.[banana]4.[cherry]5.[orange]please select one that you like:END } menu [root@cs6-mini scripts]# sh menu.sh 1.[apple] 2.[pear] 3.[banana] 4.[cherry] 5.[orange] please select one that you like:

利用cat連接多文件合并Web集群日志

在工作中,前端通常會有多個集群服務器節點,這時服務器記錄日志都是在本地記錄的,因此,完整的日志是所有服務器的日志總和。在Web節點把日志推到日志平臺后,首先要做的就是對所有節點當天或者當小時的日志進行合并,這時就可以用cat的多文件功能,當然這不是必須的,還有別的方法,這里暫略,僅講解cat的生產應用。 合并Web集群節點日志的命令如下: cat web01_access20130522.log log_web02access_20130522.log > web_access20130522.log cat web_access20130522.log 上面用cat合并后的總日志文件的日志行并沒有按照用戶訪問的時間進行排序,若要按訪問時間進行排序,就要用到sort命令(請看后文詳解)了,它可以讓日志按第4列訪問時間列進行排序,整個處理方法如下: sort -k 4 web_access2010128.log #<==-k指定排序列,這里表示按第4列排序。?

利用cat 命令實現一鍵MySQL主從同步

在進行MySQL主從同步時,最關鍵的步驟就是CHANGE MASTER..命令的使用了,如果希望非交互式地執行CHANGE MASTER..命令的完整選項配置,那么下面的命令就是最合適的了。 以下是特殊生產場景下的應用,MySQL將自動批量制作主從同步所需要的語句。 cat |mysql -uroot -p'oldboy'<<EOFCHANGE MASTER TOMASTER_HOST='10.0.0.16'MASTER_PORT=3306,MASTER_USER='lewenrep',MASTER_PASSWORD='lewenrep',MASTER_LOG_file='mysql-bin.000025',MASTER_LOG_POS=4269; EOF

總結

以上是生活随笔為你收集整理的3.1 cat:合并文件或查看文件内容的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。