Linux之文件內容顯示(cat、grep、cut、sort、uniq、tr)

🎯 本文專欄:Linux
🚀 作者主頁:小度愛學習

在這里插入圖片描述

1、瀏覽普通文件內容

命令常用選項說明
cat-n 對輸出內容中的所有行標注行號;-b 對輸出內容中的非空行標注行號。查看文本文件的內容
head-num 指定需要顯示文件num行的內容。默認查看文檔前10行內容
tail-num 指定需要顯示文件num行的內容;-f 使tail不停地去讀取和顯示文件最新的內容, 這樣有實時監視的效果;tail命令更多的用于查看系統日志文件,按【Ctrl+C】鍵終止顯示和跟蹤。默認查看文檔后10行內容
more-c 從頂部清屏然后顯示文件內容。分頁查看文件內容;按Enter鍵向下逐行滾動;按空格鍵向下翻一屏、按b鍵;向上翻一屏;文件末尾時more會自動退出
less-c 從頂部清屏然后顯示文件內容;-N 其作用是在每行前添加輸出行號。分頁查看文件內容;按Enter鍵向下逐行滾動;按空格鍵向下翻一屏、按b鍵向上翻一屏;按q鍵退出
[root@master test]# cat /etc/ssh/sshd_config
[root@master test]# head /etc/ssh/sshd_config
[root@master test]# tail /etc/ssh/sshd_config
[root@master test]# more /etc/ssh/sshd_config
[root@master test]# less /etc/ssh/sshd_config

說明:以上所有命令均可以結合管道符使用

2、過濾文件內容顯示——grep

(1)功能:在指定的普通文件中查找并顯示含有指定字符串的行,也可與管道符一起使用
(2)格式: grep 選項…… 關鍵字符串 文件名稱……

選項說明
-c僅顯示找到的行數
-i忽略大小寫
-n顯示行號
-v反向選擇——僅列出沒有“關鍵詞”的行
-A-A 2 搜索時顯示匹配到的那一行以及下2行
-B-B 2 搜索時顯示匹配到的那一行以及上2行
-C-C 2 搜索時顯示匹配到的那一行以及上下2行

(3)簡單示例
在Linux系統中,/etc/passwd文件是保存著所有的用戶信息,而一旦用戶的登錄終端被設置成/sbin/nologin,則不再允許登錄系統,因此可以使用grep命令來查找出當前系統中不允許登錄系統的所有用戶信息:

[root@kongd ~]# grep /sbin/nologin /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
………………省略部分輸出過程信息………………

(4)使用特殊符號進行字符串的匹配

匹配模式說明
grep h 文件名查找文件里有字符h的行
grep ^ [q] 文件名匹配以q開始的行
grep ^ [qf] 文件名匹配以q或者f開頭的行
grep ^ [ ^qf ] 文件名不匹配以q或者f開頭的行
grep ^ [0-9] 文件名匹配以數字開頭的行
grep q$ 文件名匹配以q結束的行
grep ^$過濾空白行
grep -r h ./*如果要明確搜索當前目錄中的子目錄有h的行
grep -d skip h ./*忽略當前目錄下的子目錄下的普通文件
[root@master test]# grep a /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:2:2:daemon:/sbin:/sbin/nologin
………………省略部分輸出過程信息………………
[root@master test]# grep ^a /etc/passwd
adm:x:3:4:adm:/var/adm:/sbin/nologin
[root@master test]# grep h$ /etc/passwd
root:x:0:0:root:/root:/bin/bash
centos:x:1000:1000:centos:/home/centos:/bin/bash
[root@master test]# grep -v h$ /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
………………省略部分輸出過程信息………………

3、切割顯示cut

cut命令用于按列提取文本內容,語法為: cut [選項] 文件名稱
系統文件在保存用戶數據信息時,每一項值之間是采用冒號來間隔的,先查看一下:

[root@kongd ~]# head -n 2 /etc/passwd 
root:x:0:0:root:/root:/bin/bash 
bin:x:1:1:bin:/bin:/sbin/nologin
[root@kongd ~]# cut -d: -f1 /etc/passwd
root
bin
daemon
adm
lp
………………省略部分輸出信息………………
[root@server ~]# cut -c   3 /etc/passwd | head -3
o
n
e

4、排序顯示sort

一般而言,按基于“行”的方式來提取數據是比較簡單的,只需要設置好要搜索的關鍵詞即可。但是如果
按列搜索,不僅要使用-f參數來設置需要看的列數,還需要使用-d參數來設置間隔符號。
接下來使用下述命令嘗試提取出passwd文件中的用戶名信息,即提取以冒號(:)為間隔符號的第一列
內容

sort命令用于對文本內容進行排序顯示,語法為: sort [選項] 文件名稱

選項作用
-f忽略大小寫
-b忽略縮進與空格
-n以數值型排序
-r反向排序
-u去除重復行
-t指定間隔符
-k設置字段范圍

首先,sort命令執行后默認會按照字母順序進行排序,非常方便:

[root@kongd ~]# cat fruit.txt 
banana
pear
apple
orange
raspaberry
[root@kongd ~]# sort fruit.txt 
apple
banana
orange
pear
raspaberry

sort -u參數進行去重操作:

[root@kongd ~]# cat sort.txt 
Welcome to kongd.com
Red Hat certified
Welcome to kongd.com
Free Linux Lessons
Linux Course
[root@kongd ~]# sort -u sort.txt 
Free Linux Lessons
Red Hat certified
Welcome to kongd.com

想對數字進行排序?也是一點問題都沒有的,而且完全不用擔心出現1小于20這種問題(有些命令只比較第一位):

[root@kongd ~]# cat number.txt 
45
12
3
98
82
67
24
56
9
[root@kongd ~]# sort -n number.txt 
3
9
12
24
45
56
67
82
98

最后,我們挑戰一個“高難度”的小實驗。下面的內容是節選自/etc/passwd文件中前五個字段的內容,并進行混亂排序后的樣子:

[root@kongd ~]# cat user.txt 
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon
polkitd:x:998:996:User for polkitd
geoclue:x:997:995:User for geoclue
rtkit:x:172:172:RealtimeKit
pulse:x:171:171:PulseAudio System Daemon
qemu:x:107:107:qemu user
usbmuxd:x:113:113:usbmuxd user
unbound:x:996:991:Unbound DNS resolver
rpc:x:32:32:Rpcbind Daemon
gluster:x:995:990:GlusterFS daemons

不難看出上面其實是五個字段,各個字段之間是用了冒號進行間隔,如果想以第三個字段中的數字作為排序依據,那么就可以用-t參數指定間隔符,-k參數指定第幾列,-n參數進行數字排序來搞定:

[root@kongd ~]# sort -t : -k 3 -n user.txt 
rpc:x:32:32:Rpcbind Daemon
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon
qemu:x:107:107:qemu user
usbmuxd:x:113:113:usbmuxd user
pulse:x:171:171:PulseAudio System Daemon
rtkit:x:172:172:RealtimeKit
gluster:x:995:990:GlusterFS daemons
unbound:x:996:991:Unbound DNS resolver
geoclue:x:997:995:User for geoclue
polkitd:x:998:996:User for polkitd

5、去重顯示uniq

uniq命令用于去除文本中連續的重復行,語法為: uniq [選項] 文件名稱
我們對兩個文本內容進行操作,區別一目了然:

[root@kongd ~]# cat uniq.txt 
Welcome to kongd.com
Welcome to kongd.com
Welcome to kongd.com
Welcome to kongd.com
Red Hat certified
Free Linux Lessons
Professional guidance
Linux Course
[root@kongd ~]# uniq uniq.txt 
Welcome to kongd.com
Red Hat certified
Free Linux Lessons
Professional guidance
Linux Course
[root@master ~]# uniq -c uniq.txt4 Welcome to kongd.com1 Red Hat certified1 Free Linux Lessons1 Professional guidance1 Linux Course

6、替換文件中的字符顯示tr

tr 指令從標準輸入讀取數據,經過替換或者刪除后,將結果輸出到標準輸出。
語法: tr [OPTION]…SET1[SET2]
參數說明:

  • -c 反選設定字符。也就是符合 SET1 的部份不做處理,不符合的剩余部份才進行轉換
  • -d 刪除指令字符
  • -s 縮減連續重復的字符成指定的單個字符

示例:將文件testfile中的小寫字母全部轉換成大寫字母,可使用如下命令:

[root@master ~]#cat testfile |tr a-z A-Z 

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/901765.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/901765.shtml
英文地址,請注明出處:http://en.pswp.cn/news/901765.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

3DS 轉 STL 全攻略:傳統工具與迪威模型網在線轉換深度解析

在 3D 建模與 3D 打印的技術領域中,常常會遇到需要將不同格式的文件進行轉換的情況。其中,把 3DS 文件轉換為 STL 格式是較為常見的操作。3DS 文件作為一種舊版 Autodesk 3D Studio 使用的 3D 圖像格式,存儲著豐富的信息,包括網格…

IoT FEM射頻前端模組芯片(2.4G PA)三伍微電子GSR2401 兼容替代RFX2401

型號:GSR2401應用:適用于藍牙(BT)、ZigBee及物聯網(IoT)設備 功能:集成了功率放大器(PA)、開關(Switch)和低噪聲放大器(LNA&#xff…

Missashe考研日記-day22

Missashe考研日記-day22 1 專業課408 學習時間:3h學習內容: 先把昨天關于進程調度的課后習題做了,然后花了挺長時間預習OS的最最最最重要的一部分——同步與互斥問題,這部分大二上課的時候就懵懵懂懂的,得認真再領悟…

2025年最新Web安全(面試題)

活動發起人小虛竹 想對你說: 這是一個以寫作博客為目的的創作活動,旨在鼓勵大學生博主們挖掘自己的創作潛能,展現自己的寫作才華。如果你是一位熱愛寫作的、想要展現自己創作才華的小伙伴,那么,快來參加吧&#xff01…

Qt QML - qmldir使用方法詳解

以實際例子看qmldir的使用 1.搞一個qmldir2.讓QML找到你的qmldir (重點).pro 工程文件QQmlApplicationEngine加載主QML處 3.用起來你的模塊 qmldir是Qt QML模塊化的基石,其設計初衷是為解決QML文件的組織、復用和依賴管理問題,。只需要在每個…

# Shell腳本參數設計規范(DeepSeek指導)

Shell腳本參數設計規范(DeepSeek指導) 文章目錄 Shell腳本參數設計規范(DeepSeek指導)A 我問:Q DeepSeek回答:**命令行參數表示規范****標準化表示示例**情況1:必選選項參數值情況2:…

MQTT協議:IoT通信的輕量級選手

文章總結(幫你們節約時間) MQTT協議是一種輕量級的發布/訂閱通信協議。MQTT通信包括連接建立、訂閱、發布和斷開等過程。MQTT基于TCP/IP,其通信過程涉及多種控制包和數據包。ESP32S3可以通過MQTT協議接收消息來控制IO9引腳上的LED。 想象一…

數據結構——反射、枚舉以及lambda表達式

1. 反射 Java的反射(reflection)機制是在運?時檢查、訪問和修改類、接?、字段和?法的機制;這種動態獲取信息以及動態調?對象?法的功能稱為java語?的反射(reflection)機制。 用途 1. 框架開發 2. 注解處理 3.…

C語言教程(十):C 語言函數詳解

一、引言 在 C 語言中,函數是一組執行特定任務的代碼塊。通過將復雜的程序邏輯劃分為多個函數,不僅能提高代碼的可讀性、可維護性,還便于代碼的復用。無論是簡單的數學計算,還是復雜的系統操作,函數都發揮著核心作用。…

力扣面試150題--有效的字母異位詞和字母異位詞分組

Day 24 題目描述 思路 初次思路:如果兩個字符串為異位詞,說明它們長度相同并且字母出現的次數相同,于是有以下做法: 定義一個map,來保存s中每個字符的出現次數處理特殊情況,如果長度不同,直接…

數理邏輯(Mathematical Logic)綜論與跨學科應用

李升偉 整理 數理邏輯(Mathematical Logic)是現代邏輯學與數學交叉的核心學科,以嚴格的數學方法研究邏輯推理的形式與規律。其發展深刻影響了數學基礎、計算機科學、語言哲學等領域。以下從多個維度綜論數理邏輯: 1. 核心分支 命…

高性能內存kv數據庫Redis(續)

目錄 四.主從同步與對象模型 1.Redis 淘汰策略 2.Redis 如何做到 持久化 2.1 redis為什么要實現持久化 2.2fork進程的寫時復制機制 2.3大Key的影響 2.4redis做持久化的方式 2.5 aof 2.6 rdb 2.7 redis 持久化方式的優缺點 3.redis里面的高可用體現在哪里? 3.1r…

泛型算法——只讀算法(一)

在 C 標準庫中,泛型算法的“只讀算法”指那些 不會改變它們所操作的容器中的元素,僅用于訪問或獲取信息的算法,例如查找、計數、遍歷等操作。 accumulate std::accumulate()是 C 標準庫**numeric**頭文件中提供的算法,用于對序列…

SvelteKit 最新中文文檔教程(21)—— 最佳實踐之圖片

前言 Svelte,一個語法簡潔、入門容易,面向未來的前端框架。 從 Svelte 誕生之初,就備受開發者的喜愛,根據統計,從 2019 年到 2024 年,連續 6 年一直是開發者最感興趣的前端框架 No.1: Svelte …

健康養生:開啟活力生活的密鑰

當我們在健身房看到年逾六旬卻身形矯健的老人,在公園偶遇精神矍鑠、步伐輕快的長者,總會驚嘆于他們的健康狀態。其實,這些都得益于長期堅持科學的養生之道。健康養生并非遙不可及的玄學,而是融入生活細節的智慧。? 在飲食的世界…

Linux信號三部曲:產生機制、處理方式與內核接口

Linux系列 文章目錄 Linux系列前言一、背景知識鋪墊1.1 信號的基本概念1.2 進程對信號的處理 二、信號的產生2.1 前臺進程和后臺進程2.2 鍵盤組合鍵2.3 kill 命令2.4 系統調用2.4.1 signal()接口2.4.2 kill()接口2.4.3 raise()接口2.4.4 abort()接口 總結 前言 Linux中&#x…

win7/win10/macos如何切換DNS,提升網絡穩定性

本篇教程教您如何在Windows10、Windows8.1、Windows7、MacOS操作系統切換DNS,以提升系統的穩定性,獲得更好的操作體驗。 Windows10及Windows8.1 1、右鍵單擊“此計算機”,然后選擇“屬性”。進入Windows系統界面后,選擇左側的“…

移動硬盤突然打不開緊急救援指南:從排查到完整恢復?

突發狀況的典型特征? 當移動硬盤突然打不開時,用戶常會遇到多種異常表現:接入電腦后硬盤指示燈雖亮但無法識別、系統反復提示“設備未連接成功”或彈出“磁盤結構損壞”的警告。部分情況下,資源管理器中的盤符雖可見,但雙擊后顯示…

華為OD機試真題——統計匹配的二元組個數(2025A卷:100分)Java/python/JavaScript/C++/C語言/GO六種最佳實現

2025 A卷 100分 題型 本文涵蓋詳細的問題分析、解題思路、代碼實現、代碼詳解、測試用例以及綜合分析; 并提供Java、python、JavaScript、C、C語言、GO六種語言的最佳實現方式! 2025華為OD真題目錄全流程解析/備考攻略/經驗分享 華為OD機試真題《統計匹配…

半導體制造如何數字化轉型

半導體制造的數字化轉型正通過技術融合與流程重構,推動著這個精密產業的全面革新。全球芯片短缺與工藝復雜度指數級增長的雙重壓力下,頭部企業已構建起四大轉型支柱: 1. 數據中樞重構產線生態 臺積電的「智慧工廠4.0」部署著30萬物聯網傳感器…