文件的行操作


1.1 8

輸出test.txt文件內容時,不包含clsn字符串的命令

文件內容:

[root@znix ~]# cat /data/test.txt
test
liyao
clsn

1.1.1 方法一grep

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

-v 參數是排除的意思

[root@znix ~]# grep -v "clsn" /data/test.txt
test
liyao

1.1.2 方法二head

使用head顯示文件前2行信息(-2參數是顯示兩行),默認顯示前10行。

[root@znix ~]# head -2 /data/test.txt
test
liyao

1.1.3 方法三 sed

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

1.1.4 方法四 awk

使用awk查找文本里的clsn/並顯示:

[root@znix ~]# awk '/clsn/' /data/test.txt
clsn

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

[root@znix ~]# awk '!/clsn/' /data/test.txt
test
liyao

1.2 9

用一條命令完成創建目錄/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

1.3 10

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

1.3.1 方法一:

      \cp 取消別名

[root@znix data]# \cp /mnt/test.txt /tmp/

1.3.2 方法二:

使用命令的絕對路徑

 [root@znix data]# /bin/cp /mnt/test.txt /tmp/

1.4 11

查看ett.txt文件(共100行)內第20到第30行的內容

1.4.1 創建該文件

使用seq命令創建一個100行的文件。

[root@znix ~]# seq 5
1
2
3
4
5
[root@znix ~]#seq 100 >ett.txt

1.4.2 方法一

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

[root@znix ~]# head -30 ett.txt |tail -11
20
21
22
23
24
25
26
27
28
29
30

1.4.3 方法二

使用sed查找20-30行,p表示行數,-n表示取消默認輸出。

[root@znix ~]# sed -n '20,30p'  ett.txt
20
21
22
23
24
25
26
27
28
29
30

1.4.4 方法三

      NR表示行,逗號表示2030,兩個等於號才是真正的等於

[root@znix ~]# awk 'NR==20,NR==30' ett.txt

      &&表示和, => 20大於等於20 <=30 小於等於30

[root@znix ~]# awk 'NR>=20 && NR<=30' ett.txt
20
21
22
23
24
25
26
27
28
29
30

1.4.5 方法四

由於這個文件的第20行正好是20。使用grep找到20並輸出,-A10 表示輸出后面的10行。

[root@znix ~]# grep -A10 "20"  ett.txt
20
21
22
23
24
25
26
27
28
29
30

1.5 13

/clsn目錄及其子目錄下所有以擴展名.sh結尾的文件中,文件含.clsn的字符串全部替換為znix

1.5.1 創建環境

mkdir -p /clsn/test
cd /clsn
echo "clsn">test/del.sh
echo "clsn">test.sh
echo "clsn">t.sh
touch clsn.txt
touch alex.txt

1.5.2 方法一

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

1.5.3 方法二

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

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM