檔案的行操作

2021-09-07 14:43:45 字數 3233 閱讀 6029

輸出test.txt檔案內容時,不包含clsn字串的命令

檔案內容:

[root@znix ~]#

cat /data/test.txt

test

liyao

clsn

使用grep命令,找什麼就寫什麼

-v 引數是排除的意思

[root@znix ~]#

grep -v "clsn" /data/test.txt

test

liyao

使用head顯示檔案前2行資訊(-2引數是顯示兩行),預設顯示前10行。

[root@znix ~]#

head -2 /data/test.txt

test

liyao

sed命令使用單引號

sed命令主要用於刪除

'/clsn/d' 表示刪除clsn這個內容

[root@znix ~]#

sed '/clsn/d' /data/test.txt

test

liyao

'3d'  表示刪除第三行

[root@znix ~]#

sed '3d' /data/test.txt

test

liyao

使用awk查詢文字裡的clsn/並顯示:

[root@znix ~]#

awk '/clsn/' /data/test.txt

clsn

前面加!表示排除這個內容,不顯示這個內容。

[root@znix ~]#

awk '!/clsn/' /data/test.txt

test

liyao

用一條命令完成建立目錄/clsn/test,即建立/clsn目錄及/clsn/test

建立多級目錄時需要新增引數 -p 表示建立多級目錄。

[root@znix ~]#

mkdir -p /clsn/test

[root@znix ~]#

ls /clsn/

alex.txt alex.txt.bak clsn.txt test test.sh t.sh

[root@znix ~]#

ls -l /clsn/test

total 0

已知/tmp下已經存在test.txt檔案,如何執行命令才能把/mnt/test.txt拷貝到/tmp下覆蓋掉/tmp/test.txt,而讓系統不提示是否覆蓋(root許可權下)。

\cp 取消別名

[root@znix data]#

\cp /mnt/test.txt /tmp/

使用命令的絕對路徑

[root@znix data]#

/bin/cp /mnt/test.txt /tmp/

檢視ett.txt檔案(共100行)內第20到第30行的內容

使用seq命令建立乙個100行的檔案。

[root@znix ~]#

seq 512

345[root@znix ~]#

seq 100 >ett.txt

使用head找出前30行,通過管道傳給tial,再使用tail找出後11行,然後輸出。

[root@znix ~]#

head -30 ett.txt |tail -11

2021

2223

2425

2627

2829

30

使用sed查詢20-30行,p表示行數,-n表示取消預設輸出。

[root@znix ~]#

sed -n '20,30p' ett.txt

2021

2223

2425

2627

2829

30

nr表示行,逗號表示20到30,兩個等於號才是真正的等於。

[root@znix ~]#

awk 'nr==20,nr==30' ett.txt

&&表示和, => 20大於等於20,

<=30 小於等於30

[root@znix ~]#

awk 'nr>=20 && nr<=30' ett.txt

2021

2223

2425

2627

2829

30

由於這個檔案的第20行正好是20。使用grep找到20並輸出,-a10 表示輸出後面的10行。

[root@znix ~]#

grep -a10 "20" ett.txt

2021

2223

2425

2627

2829

30

把/clsn目錄及其子目錄下所有以副檔名.sh結尾的檔案中,檔案含.clsn的字串全部替換為znix。

mkdir -p /clsn/test

cd /clsn

echo

"clsn

">test/del

.shecho

"clsn

">test.sh

echo

"clsn

">t.sh

touch clsn.txt

touch alex.txt

sed生效需要增加

-i 引數。

使用find找在/clsn 目錄下的

檔案,名字是.sh 結尾的,使用管道xgras  傳給sed,然後使用's#要被替換的內容#替換的內容#g' 對

檔案進行修改。

[root@znix clsn]#

find /clsn/ -type f -name "*.sh"|xargs sed 's#clsn#znix#g' -i

znix

znix

znix

$( ) 先執行括號裡面命令,再執行前面的命令

[root@znix clsn]#

sed 's#clsn#znix#g' $(find /clsn/ -type f -name "*.sh")

znix

znix

znix

shell中對檔案指定行的操作

1 awk1 awk 可以設定條件來輸出檔案中m行到n行中每行的指定的k欄位,使用格式如下 awk nr m,nr n path filename m,n,k表示實在的數值,其中k為0 9。如果要用變數來表示m,n的值,則變數需要用單引號將其引起來。nr,是awk命令在此用法下的規定字段 path ...

mysql行 MySQL 行的詳細操作

閱讀目錄 介紹mysql資料操作 dml 在mysql管理軟體中,可以通過sql語句中的dml語言來實現資料的操作,包括 使用insert實現資料的插入 update實現資料的更新 使用delete實現資料的刪除 使用select查詢資料以及。本節內容包括 插入資料 更新資料 刪除資料 查詢資料 插...

行轉列操作

replace substring,substring index用法例項 源資料 mobile 123342,1232314,1243123,replace substring substring index mobile,a.id char length substring index mobi...