成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

提升效率必備,掌握這些 Shell 文本處理技能!

開發
雖然 Python 等腳本語言在復雜任務中更具優勢,但使用 Shell 腳本處理簡單的文件操作和文本處理依然十分高效。

Shell腳本是Linux系統里的一項基本功,就算它的語法看起來有點奇怪,讀起來也不是特別順暢,但在一些情況下,它仍然是最能干的解決辦法。學好Shell腳本,不僅讓你對Linux系統了解更深,還能讓你手快地做好很多日常任務。

在這篇文章里,我會跟你分享在Linux Shell里處理文字時最常使用的幾個“利器”:find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed和awk,而且每個都會配上實用的例子。我們的目標是讓腳本簡單直白,最好一行命令或者兩行就搞定。

一、找文件的小能手

find是個找文件的小能手,本事大得很,不管文件躲在哪個角落,它都能幫你把它揪出來。

1.查找指定類型文件

查找 .txt 和 .pdf 文件:

find . \( -name "*.txt" -o -name "*.pdf" \) -print

使用正則表達式查找 .txt 和 .pdf:

find . -regex ".*\(\.txt|\.pdf\)$"

-iregex:忽略大小寫的正則。

2.查找特定條件的文件

查找最近 7 天被訪問的文件:

find . -atime -7 -type f -print

查找大于 2K 的文件:

find . -type f -size +2k

3.后續操作

刪除 .swp 文件:

find . -type f -name "*.swp" -delete

將 10 天前的 .txt 文件拷貝到 OLD 目錄:

find . -type f -mtime +10 -name "*.txt" -exec cp {} OLD \;

二、文本搜索神器

grep是個超級好用的工具,專門用來在大量文字中找到你需要的內容。

1.常用選項

只顯示匹配行:

grep "pattern" file

統計匹配次數:

grep -c "pattern" file

打印匹配行的行號:

grep -n "pattern" file

遞歸搜索:

grep -r "pattern" .

2.擴展功能

多模式匹配:

grep -e "pattern1" -e "pattern2" file

查找并刪除文件:

grep "pattern" file* -lZ | xargs -0 rm

三、命令行高效參數處理器

xargs 具有將命令輸出作為后續命令行參數的功能,從而實現了多個命令的高效與靈活鏈式執行。

實用示例

多行輸出轉為單行:

cat file.txt | xargs

將文件中的每一行傳遞給腳本:

cat file.txt | xargs -I {} ./script.sh -p {}

統計 .cpp 文件中的行數:

find . -name "*.cpp" -print0 | xargs -0 wc -l

四、排序與去重

進行數據去重與排序操作:利用 sort 命令實現數據的有序排列,而采用 uniq 工具則旨在消除序列中的冗余重復項,從而達到精簡數據集的目的。

1.排序

按數字降序排序:

sort -nrk 1 data.txt

2.去重

去除重復行:

sort file.txt | uniq

統計每行出現的次數:

sort file.txt | uniq -c

五、字符轉換

tr是一個在Unix和Linux操作系統中廣泛使用的命令行工具,其全稱為"translate"。該工具主要用于對來自標準輸入或指定文件的字符進行替換、刪除或壓縮操作。

基本語法結構如下:

tr [選項] 從字符集 到字符集
  • 從字符集 指定了需要被轉換或刪除的原始字符。
  • 到字符集 指定了轉換目標字符或操作(如果只想刪除字符,則此部分可省略)。

基礎用法

例如,以下命令將把輸入文本中的所有小寫字母轉換為大寫字母:

echo "hello world" | tr 'a-z' 'A-Z'

另一個例子是刪除文本中的所有數字:

echo "Example123 text." | tr -d '0-9'

tr命令還支持一些選項來擴展其功能,如-d用于刪除字符,而不是轉換它們;-s用于壓縮連續重復的字符為一個。

六、按列切割文本

cut`是 Linux 中用于按列截取文本的命令。它通過指定分隔符(默認為制表符)來選擇并提取文件中的特定字段或字符。它常用于處理結構化數據,如 CSV 文件,快速提取有用的信息。

基本操作

截取第 2 和第 4 列:

cut -f2,4 filename

排除第 3 列:

cut -f3 --complement filename

七、按列拼接文本

paste命令用于將多個文件的內容按列拼接在一起,生成一個新的輸出。它會逐行讀取每個文件,并將相應行的內容用制表符(默認)或指定的分隔符連接起來。常見用法包括將兩個文件橫向拼接在一起,或將單個文件的多列數據合并。

基本用法

將兩個文本按列拼接到一起

cat file1 file2
colin
book

默認的定界符是制表符,可以用-d指明定界符。

paste file1 file2 -d ','
colin,book

八、統計行、詞和字符數

wc(word count)是一個用于統計文件內容的命令行工具,能夠統計文件中的行數、單詞數、字符數等信息。常見用法包括統計行數wc -l、單詞數wc -w以及字符數wc -m。它可以處理多個文件,并在終端中輸出每個文件的統計結果,通常用于文本分析和簡單的文件內容審計。

基本用法

統計行數:

wc -l file

統計單詞數:

wc -w file

九、流編輯器

sed(Stream Editor)是一個輕量級、強大的文本處理工具,適用于在流式數據或文件中進行快速的查找、替換、刪除、插入等操作。它以非交互的方式逐行處理文本,支持正則表達式,常用于批量編輯和轉換文件內容。sed的常見用途包括替換字符串、刪除或提取特定行、插入文本等,非常適合需要在命令行中對文件進行簡單編輯的場景。

1.文本替換

替換每行的第一個匹配項:

sed 's/old/new/' file

全局替換:

sed 's/old/new/g' file

2.其它操作

移除空行:

sed '/^$/d' file

十、文本處理利器

awk 是處理結構化文本的強大工具,支持復雜的模式匹配和數據處理。

1.基本用法

打印每行的第二個字段:

awk '{print $2}' file

統計行數:

awk 'END {print NR}' file

過濾并打印匹配的行:

awk '/pattern/' file

2.進階功能

按范圍打?。?/p>

awk 'NR==4,NR==6{print}' file

格式化輸出:

seq 10 | awk '{printf "->%4s\n", $1}'

總結

雖然 Python 等腳本語言在復雜任務中更具優勢,但使用 Shell 腳本處理簡單的文件操作和文本處理依然十分高效。本文介紹的這些工具都是非常基礎且實用的命令,希望能幫助你快速提升在 Linux 下的操作效率。

責任編輯:趙寧寧 來源: 攻城獅成長日記
相關推薦

2017-03-02 18:10:20

LinuxShell命令

2024-11-06 17:04:47

AWK編程

2013-10-30 10:35:29

Linux命令文本處理

2010-07-21 10:05:13

Perl文本處理模塊

2021-09-10 16:30:29

LinuxShell文本

2021-01-28 08:12:15

Linux命令技巧

2013-08-20 16:14:46

pythonpython文本處理

2025-03-11 14:09:04

2019-10-14 11:31:51

工具代碼開發

2024-03-06 15:57:56

ShellLinux

2024-04-12 12:14:39

Rust字符串代碼

2025-06-25 07:08:09

grepsedawk

2010-01-06 17:12:26

.Net Framew

2023-12-31 16:23:39

KubernetesPod容器

2019-06-10 13:50:08

Linux命令shell

2023-09-21 23:05:50

jiebaPython

2019-10-29 09:20:48

Python文本正則表達式

2024-11-21 13:02:42

2024-03-11 00:02:00

tr命令文本處理命令字符

2023-10-07 08:25:09

Java處理工具正則表達式
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩精品一区二区三区在线播放 | 日韩免费高清视频 | 日韩高清av | 久久精品国产亚洲 | 99re免费 | 免费观看av| 九九九视频| 成人做爰www免费看视频网站 | 欧美福利三区 | 色婷婷综合久久久中文字幕 | 亚洲人的av| 国产成人午夜精品影院游乐网 | 亚洲欧美在线免费观看 | 女朋友的闺蜜3韩国三级 | 欧美xxxⅹ性欧美大片 | 超碰97人人人人人蜜桃 | 色婷婷av一区二区三区软件 | 国产精品久久久久一区二区三区 | 特级毛片 | 国产一区久久 | 麻豆av一区二区三区久久 | 国产亚洲欧美日韩精品一区二区三区 | 亚洲精品一区二区 | 久久网站免费视频 | 殴美成人在线视频 | 欧美午夜一区 | 久久爱一区 | com.色.www在线观看 | 亚洲欧美日韩在线 | 国产在线视频在线观看 | av在线播放不卡 | 亚洲午夜av久久乱码 | 欧美一区不卡 | 欧美激情久久久久久 | 伊人精品久久久久77777 | 亚洲国产片| 日韩欧美国产一区二区 | 中文字幕视频在线观看 | 国产一区三区在线 | 五月天婷婷丁香 | av在线播放一区二区 |