【Linux學習五】文本處理


環境
  虛擬機:VMware 10
  Linux版本:CentOS-6.5-x86_64
  客戶端:Xshell4
  FTP:Xftp4html

1、cut:顯示切割的行數據
f:選擇顯示的列
s:不顯示沒有分隔符的行
d:自定義分隔符node

舉例:
cut -d' ' -f1-3 test.txt 按照空格切分test.txt每一行數據 顯示1-3列
cut -d' ' -f1,3 test.txt 按照空格切分test.txt每一行數據 顯示第一、3列
cut -d' ' -s -f1,3 test.txt 按照空格切分test.txt每一行數據 顯示第一、3列 不顯示沒有分隔符的行正則表達式

2、sort:排序文件的行
n:按數值排序
r:倒序
t:自定義分隔符
k:選擇排序列
u:合併相同行
f:忽略大小寫shell

[root@node1 src]# sort -t' ' -k2 sort.txt
apple 1
banana 12
orange 8
[root@node1 src]# sort -t' ' -n -k2 sort.txt
apple 1
orange 8
banana 12
[root@node1 src]# sort -t' ' -n -r -k2 sort.txt
banana 12
orange 8
apple 1數組


3、wc 統計單詞
-c 字節數
-l 行數
-w 單詞數
統計文件行數、單詞數、單詞字節數(包括空格、佔位符)
[root@node1 src]# wc sort.txt
3 6 27 sort.txtapp

4、sed 行編輯器
主要兩件事:
1.查詢數據,使用行號或者正則查詢
2.對查詢出來的數據進行新增(行前或行後)、替換、刪除 -i參數會修改源文件

sed [options] 'AddressCommand' file ...
options:
-n: 只展現匹配到內容
-i: 直接修改原文件
-e SCRIPT -e SCRIPT:能夠同時執行多個腳本
-f /PATH/TO/SED_SCRIPT
-r: 表示使用擴展正則表達式編輯器

編輯命令
d: 刪除符合條件的行;
p: 顯示符合條件的行;
a\string: 在指定的行後面追加新行,內容爲string
\n:能夠用於換行
i\string: 在指定的行前面添加新行,內容爲string
c\ 用新文本替換定位文本
r FILE: 將指定的文件的內容添加至符合條件的行處
w FILE: 將地址指定的範圍內的行另存至指定的文件中;
s/pattern/string/修飾符: 查找並替換,默認只替換每行中第一次被模式匹配到的字符串
g: 行內全局替換
i: 忽略字符大小寫
s///: s###, s@@@
\(\), \1, \2函數

sed:行編輯器Address
能夠沒有
給定範圍
查找指定行/str/


5、awk
awk是一個強大的文本分析工具。相對於grep的查找,sed的編輯,awk在其對數據分析並生成報告時,顯得尤其強大。
簡單來講awk就是把文件逐行的讀入,(空格,製表符)爲默認分隔符將每行切片,切開的部分再進行各類分析處理。
awk -F '{pattern + action}' {filenames}
支持自定義分隔符
支持正則表達式匹配
支持自定義變量,數組 a[1] a[tom] map(key)
支持內置變量
ARGC 命令行參數個數
ARGV 命令行參數排列
ENVIRON 支持隊列中系統環境變量的使用
FILENAME awk瀏覽的文件名
FNR 瀏覽文件的記錄數
FS 設置輸入域分隔符,等價於命令行 -F選項
NF 瀏覽記錄的域的個數
NR 已讀的記錄數
OFS 輸出域分隔符
ORS 輸出記錄分隔符
RS 控制記錄分隔符
支持函數
print、split、substr、sub、gsub
支持流程控制語句,類C語言
if、while、do/while、for、break、continue工具


參考:
sed
https://www.cnblogs.com/ctaixw/p/5860221.html命令行

相關文章
相關標籤/搜索