Linux學習之資料處理

2021-10-01 17:08:39 字數 4202 閱讀 8962

grep

egrep

# 過濾

grep 過濾

-a10

-b10

-c10

grep -a10 『/bin/bash』』/etc/passwd』 將包括/bin/bash的資訊以及它以下10的資訊都顯示出來

grep -b10 『/bin/bash』』/etc/passwd』 將包括/bin/bash的資訊以及它以上10的資訊都顯示出來

grep -c10 『/bin/bash』』/etc/passwd』 將包括/bin/bash的資訊、它以上以及以下10的資訊都顯示出來

-v 反過濾

-l 列出檔名

-o 只顯示匹配到的關鍵字

-i 忽略大小寫

-c 匹配數

-n 行號

-e 正規表示式

egrep

grep -e 增強模式,正規表示式

pgrep 查詢程序的pid

sort

# 排序

sort

-r 反序排序

-f 忽略大小寫

-n 按數字排序

-t 分隔符

-k 關鍵字

-o 結果輸出到檔案

uniq

# 去重之前要排序

# 去重

uniq

-u 僅顯示不重複行

-d 僅顯示重複行

-i 忽略大小寫

-c 每行出現的次數

tr用來從標準輸入中通過替換或刪除操作進行字元轉換;主要用於刪除檔案中控制字元或進行字元轉換。

使用tr時要轉換兩個字串:

字串1用於查詢,

字串2用於處理各種轉換。

語法:

commands|

tr'string1'

'string2'

tr'string1'

'string2'

< filename

tr options 'string1'

< filename

-d 刪除字串1中所有輸入字元。

-s 刪除所有重複出現字串行,只保留第乙個;即將重複出現字串壓縮為乙個字串。

a-z 任意小寫

a-z 任意大寫

0-9 任意數字

[root@dyqin qdy]# cat 3.txt 自己建立該檔案用於測試

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

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

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

boss02:x:516:511::/home/boss02:/bin/bash

vip:x:517:517::/home/vip:/bin/bash

stu1:x:518:518::/home/stu1:/bin/bash

mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin

smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin

aaaaaaaaaaaaaaaaaaaa

bbbbbb111111122222222222233333333cccccccc

hello world 888

666777

999

# tr -d '[:/]' < 3.txt 刪除檔案中的:和/

# cat 3.txt |tr -d '[:/]' 刪除檔案中的:和/

# tr '[0-9]' '@' < 3.txt 將檔案中的數字替換為@符號

# tr '[a-z]' '[a-z]' < 3.txt 將檔案中的小寫字母替換成大寫字母

# tr -s '[a-z]' < 3.txt 匹配小寫字母並將重複的壓縮為乙個

# tr -s '[a-z0-9]' < 3.txt 匹配小寫字母和數字並將重複的壓縮為乙個

linux中使用

0 代表標準輸入 stdin

1 代表標準輸出 stdout

2 代表標準錯誤輸出 stderr

輸出重定向

1. 輸出重定向 (標準輸出》 追加輸出》 正確1 錯誤2)

1.1 標準正確輸出重定向 (

>

) 如果檔案不存在,則建立;如果存在,則替換檔案原先已有的內容並且寫入新內容

echo

'abcdefg'

>

file

==echo

'abcefg'

1>

file

1.2 追加正確輸出重定向 (

>>

) 如果檔案不存在,則建立;如果存在,則在檔案最後一行寫入新內容

echo

'abcdefg'

>>

file

==echo

'abcdefg'

1>>

file

1.3 標準錯誤輸出重定向

echo

'abcdefg'

2>

file

1.4 追加錯誤輸出重定向

echo

'abcdefg'

2>>

file

如果既想讓檔案有正確的輸出,也有錯誤的輸出,怎麼辦呢?

echo

'abcdefg'

1>>

file

2>>

file

==echo

'abcdefg'

&>>

file

&>(還有這個)

echo

'abcdefg'

1>>

file

2>

&1echo

'abcdefg'

2>>

file

1>

&2

拓展:echdddd 'sfsfsfsdfsdf'

&> /dev/null /dev/null相當於windows的**站

ps:當然,對於一條命令同一時刻只會有乙個結果,要麼正確要麼錯誤。

輸入重定向

2. 輸入重定向

例子1:

echo

'1 2 3 4 5'

>

file

xargs -n2 <

file file作為xargs的引數,預設以空白字元分隔,以兩列顯示

==xargs -n2 0

<

file

xargs -n4 -d: 0

< /etc/passwd

-d指定分隔符

例子2:

寫入多行資料,用重定向實現

cat>> abc.txt <...

......

eofps: eof(end of file

), eof可替換成任意字元,只要前後一致即可

例子3:

指令碼中:

fdisk /dev/sdb

+20m

weof

Python之資料處理

靠別人不如靠自己,學學學學學學學學!原資料 需求 coding utf 8 txtfile aminer1.txt newtxtfile open new txtfile,w with open txtfile,r as file to read lines file to read.readlin...

python之資料處理

檔案資料讀寫的基本操作 import this 本地檔案的界定 指向乙個本地儲存的檔案,是乙個連線或者乙個對映 path1 c users 11786 desktop test.txt 正斜線兩個或者反斜線乙個來用於資料路徑的表達 再或者用r 寫在檔案路徑外面 推薦第三種 path2 c users...

資料互動之資料處理

資料互動必須通過協議來實現,所以互動雙方必須遵循一定的讀寫規則 我的方法很簡單但可以用,如果大家有好的方法,不妨交流一下 實現方法 資料流類datastream有兩個char 型指標,分別用來儲存讀寫的資料,還有w pos,r pos兩個資料用來記錄讀寫的位置,而且要用到互斥鎖,確保指標的安全性 v...