shell檔案處理工具

2021-09-20 17:31:31 字數 3305 閱讀 1977

vim /etc/resolve.conf 檢視dns

6.shell指令碼命令

1.diff

diff        file file   比較兩個檔案的不同

-c         顯示周圍的行

-u          按照一格式統一輸出生成補丁

-r          比較兩個目錄中檔案的不同

pattch      file    file.path   打補丁

-b              備份原檔案

2.grep

grep    關鍵字元    檔案|目錄   在檔案或目錄中查詢含有關鍵字的行

grep    -i              忽略大小寫

-n              顯示關鍵字所在行

-c              顯示過濾結果的行數

-v              反向過濾

-e      「關鍵字1|關鍵字2」    過濾多個關鍵字

-r      目錄        在目錄中查詢含有關鍵字的檔案

注意:^關鍵字   以關鍵字開頭

關鍵字$   以關鍵字結尾    

^root 以root開頭

root$ 以root結尾

3.cut

cut 擷取字元

cut -d  分隔符  指定分隔符

cut -f  1,7    顯示指定的列

cut -c      顯示指定字元

cut -d " " -f 10    擷取空格後第十列到下乙個分隔符空格之間的內容

4.sort 排序

sort 

-n  純數字排序

-u  去掉重複的

|uniq -c去掉重複並統計重複個數

-t  指定分隔符

-k  指定列

sort -t : -k 2 file -nu

5.uniq

sort file | uniq -c 去掉多餘並統計重複次數  

-d 顯示多餘行

-u 顯示唯一的行

6.tr

tr 'a-z' 'a-z' file

sed 's/原字元/替換字元/g' file

sed -e '策略1 ' -e '策略2 'file  多個策略用-e

sed -i file 把轉入後的檔案輸出到指定檔案

sed '3,5s/原字元/替換字元/' file

sed xd 遮蔽指定行

sed xp 複製指定行

sed -n xp 只顯示指定行

指令碼#!/bin/bash

max=$( wc- l $1 | cut -d " " -f 1)

for num in $( seq $max )

dousername=$(sed -n $p$1)

passwd=$(sed in $p $2)

useradd $username

echo $passwd | passwd --stdin$usernamr

done

7.awk   資料處理工具,將一行分成數個段進行處理,以字段為最小的處理單位

awk '條件型別1 條件型別2...' filename

[root@taxing ~]# last -n 5

kiosk    pts/0        :0               wed nov  9 19:46  still logged in   

kiosk    pts/0        :0              wed nov  9 18:57 - 19:46  (00:48)   

kiosk    :0           :0               wed nov  9 18:57  still logged in   

reboot   system boot  3.10.0-327.el7.x thu nov 10 02:56 -19:59  (-6:-57)   

kiosk    :0           :0               wed nov  9 17:55 - 17:55  (00:00)   

wtmp begins wed sep 28 00:38:05 2016

[root@taxing ~]# last -n 5 | awk ''

kiosk   :0

kiosk   :0

kiosk   :0

reboot  boot

kiosk   :0

$0 代表一整行的資料

內建變數

nf 每一行($0)擁有的字段總數

nr 目前awk處理的是第幾行的資料

fs 目前的分隔字元,預設是空格鍵

[root@taxing ~]# last -n 5 | awk ''

kiosklines:1     columes: 10

kiosklines:2     columes: 10

kiosklines:3     columes: 10

rebootlines:4    columes: 11

kiosklines:5     columes: 10

lines:6  columes: 0

wtmplines:7  columes: 7

條件型別

[root@taxing ~]# cat /etc/passwd | awk ' $3<10 '

root:x:0:0:root:/root:/bin/bash 

bin 1

daemon  2

adm 3

lp  4

sync    5

shutdown    6

halt    7

mail    8

第一行還是預設的以空格鍵為分隔符,想要從第一行開始就在分隔符 前加 begin 關鍵字  除此之外還有end

[root@taxing ~]# cat /etc/passwd | awk 'begin $3<10 '

root    0

bin 1

daemon  2

adm 3

lp  4

sync    5

shutdown    6

halt    7

mail    8

awk命令進行計算

name    1st 2nd 3th

zed 12321   34123   41234

timo    23413   34124   35213

lol 34223   12441   22341

cat file | awk 'nr==1nr>=2'

檔案處理工具類

public class fileutils if environment.media mounted.equals state dir.isdirectory dir.canwrite return false 複製單個檔案 param oldpath param newpath public s...

linux的檔案處理工具

檔案檢視命令 cat,nl,tac,rev cat 命令 選項 e 顯示行結束符 n 對顯示出的每一行進行編號 a 顯示所有控制符 b 非空行編號 s 壓縮連續的空行成一行 more 分頁檢視檔案 d 顯示翻頁及退出提示 less 一頁一頁地檢視檔案或stdin輸出 檢視時有用的命令包括 文字 搜尋...

Nokia簡訊檔案處理工具

今天用bash指令碼寫了乙個處理nokia簡訊檔案的小工具。工具分兩個檔案,vmg2txt可以將乙個.vmg檔案的內容提取出來並顯示到螢幕上,readvmgs可以將乙個目錄下的所有.vmg檔案 包括子目錄 的內容讀出來一併顯示到螢幕上。readvmgs是依賴 vmg2txt的。什麼是.vmg檔案 程...