成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

理解Bash中的尖括號

系統(tǒng) Linux
Bash 內(nèi)置了很多諸如 ls、cd、mv 這樣的重要的命令,也有很多諸如 grep、awk、sed 這些有用的工具。但除此之外,其實 Bash 中還有很多可以起到膠水作用的標點符號,例如點號(.)、逗號(,)、括號(<>)、引號(")之類。

[[257019]]

為初學者介紹尖括號。

Bash 內(nèi)置了很多諸如 lscdmv 這樣的重要的命令,也有很多諸如 grepawksed 這些有用的工具。但除此之外,其實 Bash 中還有很多可以起到膠水作用的標點符號,例如點號(.)、逗號(,)、括號(<>)、引號(")之類。下面我們就來看一下可以用來進行數(shù)據(jù)轉(zhuǎn)換和轉(zhuǎn)移的尖括號(<>)。

轉(zhuǎn)移數(shù)據(jù)

如果你對其它編程語言有所了解,你會知道尖括號 <> 一般是作為邏輯運算符,用來比較兩個值之間的大小關(guān)系。如果你還編寫 HTML,尖括號作為各種標簽的一部分,就更不會讓你感到陌生了。

在 shell 腳本語言中,尖括號可以將數(shù)據(jù)從一個地方轉(zhuǎn)移到另一個地方。例如可以這樣把數(shù)據(jù)存放到一個文件當中:

  1. ls > dir_content.txt

在上面的例子中,> 符號讓 shell 將 ls 命令的輸出結(jié)果寫入到 dir_content.txt 里,而不是直接顯示在命令行中。需要注意的是,如果 dir_content.txt 這個文件不存在,Bash 會為你創(chuàng)建;但是如果 dir_content.txt 是一個已有的非空文件,它的內(nèi)容就會被覆蓋掉。所以執(zhí)行類似的操作之前務必謹慎。

你也可以不使用 > 而使用 >>,這樣就可以把新的數(shù)據(jù)追加到文件的末端而不會覆蓋掉文件中已有的數(shù)據(jù)了。例如:

  1. ls $HOME > dir_content.txt; wc -l dir_content.txt >> dir_content.txt

在這串命令里,首先將家目錄的內(nèi)容寫入到 dir_content.txt 文件中,然后使用 wc -l 計算出 dir_content.txt 文件的行數(shù)(也就是家目錄中的文件數(shù))并追加到 dir_content.txt 的末尾。

在我的機器上執(zhí)行上述命令之后,dir_content.txt 的內(nèi)容會是以下這樣:

  1. Applications
  2. bin
  3. cloud
  4. Desktop
  5. Documents
  6. Downloads
  7. Games
  8. ISOs
  9. lib
  10. logs
  11. Music
  12. OpenSCAD
  13. Pictures
  14. Public
  15. Templates
  16. test_dir
  17. Videos
  18. 17 dir_content.txt

你可以將 >>> 作為箭頭來理解。當然,這個箭頭的指向也可以反過來。例如,Coen brothers (LCTT 譯注:科恩兄弟,一個美國電影導演組合)的一些演員以及他們出演電影的次數(shù)保存在 CBActors 文件中,就像這樣:

  1. John Goodman 5
  2. John Turturro 3
  3. George Clooney 2
  4. Frances McDormand 6
  5. Steve Buscemi 5
  6. Jon Polito 4
  7. Tony Shalhoub 3
  8. James Gandolfini 1

你可以執(zhí)行這樣的命令:

  1. sort < CBActors
  2. Frances McDormand 6 # 你會得到這樣的輸出
  3. George Clooney 2
  4. James Gandolfini 1
  5. John Goodman 5
  6. John Turturro 3
  7. Jon Polito 4
  8. Steve Buscemi 5
  9. Tony Shalhoub 3

就可以使用 sort 命令將這個列表按照字母順序輸出。但是,sort 命令本來就可以接受傳入一個文件,因此在這里使用 < 會略顯多余,直接執(zhí)行 sort CBActors 就可以得到期望的結(jié)果。

如果你想知道 Coens 最喜歡的演員是誰,你可以這樣操作。首先:

  1. while read name surname films; do echo $films $name $surname > filmsfirst.txt; done < CBActors

上面這串命令寫在多行中可能會比較易讀:

  1. while read name surname films;\
  2. do
  3. echo $films $name $surname >> filmsfirst;\
  4. done < CBActors

下面來分析一下這些命令做了什么:

  • while …; do … done 是一個循環(huán)結(jié)構(gòu)。當 while 后面的條件成立時,dodone 之間的部分會一直重復執(zhí)行;
  • read 語句會按行讀入內(nèi)容。read 會從標準輸入中持續(xù)讀入,直到?jīng)]有內(nèi)容可讀入;
  • CBActors 文件的內(nèi)容會通過 < 從標準輸入中讀入,因此 while 循環(huán)會將 CBActors 文件逐行完整讀入;
  • read 命令可以按照空格將每一行內(nèi)容劃分為三個字段,然后分別將這三個字段賦值給 namesurnamefilms 三個變量,這樣就可以很方便地通過 echo $films $name $surname >> filmsfirst;\ 來重新排列幾個字段的放置順序并存放到 filmfirst 文件里面了。

執(zhí)行完以后,查看 filmsfirst 文件,內(nèi)容會是這樣的:

  1. 5 John Goodman
  2. 3 John Turturro
  3. 2 George Clooney
  4. 6 Frances McDormand
  5. 5 Steve Buscemi
  6. 4 Jon Polito
  7. 3 Tony Shalhoub
  8. 1 James Gandolfini

這時候再使用 sort 命令:

  1. sort -r filmsfirst

 

就可以看到 Coens 最喜歡的演員是 Frances McDormand 了。(-r 參數(shù)表示降序排列,因此 McDormand 會排在最前面)

責任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2019-02-12 16:20:24

Bash尖括號命令

2019-03-18 15:53:11

BashLinux花括號

2019-04-22 14:39:05

BashLinux命令

2019-04-15 11:10:34

Bash方括號命令行

2019-03-05 22:15:08

BashLinux命令

2023-01-13 12:37:43

Bashshell花括號

2024-03-04 08:49:44

2019-03-08 11:00:32

BashLinux

2022-12-13 12:55:15

Bash循環(huán)

2023-08-22 21:42:03

Bash函數(shù)

2020-10-29 07:09:07

編程花括號程序員

2022-12-09 07:58:52

Bash條件語句

2011-03-10 14:55:05

JavaScript

2022-11-30 07:47:00

Bash腳本

2022-12-08 12:05:03

Bash字符串

2021-05-11 07:50:31

BashShell腳本

2022-08-31 08:33:54

Bash操作系統(tǒng)Linux

2022-10-24 07:57:47

DebianUbuntuLinux

2020-07-01 18:31:14

Linuxbash永遠循環(huán)

2014-11-11 15:25:30

PHPWeb
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 久久精品免费一区二区 | 精品欧美一区二区三区久久久小说 | 欧美精品在线免费 | 国产精品久久久久久久久久久久久 | 中文字字幕一区二区三区四区五区 | 中文字幕视频在线观看免费 | 欧美日一区二区 | 蜜月va乱码一区二区三区 | 午夜精品久久久久久久久久久久久 | 亚洲精品在线观看视频 | 欧美国产在线一区 | 成人精品毛片国产亚洲av十九禁 | av黄色免费在线观看 | 国产一二区视频 | 激情欧美日韩一区二区 | 国产精品久久久久久吹潮 | 国产真实乱全部视频 | 国产天堂 | 亚洲精品亚洲人成人网 | 亚洲国产成人精品一区二区 | 一级黄a视频 | 国产午夜在线 | 亚洲国产成人精品女人久久久 | 精品一区二区在线观看 | 国产精品久久久久久久久免费 | 激情婷婷 | 一二三区av | 午夜精品久久久久久久久久久久 | 欧美日韩一区在线观看 | 成人亚洲视频 | 夜操 | 精品视频一区二区三区在线观看 | 欧美日韩久久精品 | 精品中文字幕一区二区三区 | 亚洲毛片在线观看 | 高清国产午夜精品久久久久久 | 一a级片| 伊人在线 | 欧美激情精品久久久久久变态 | 中文字幕一二三区 | 麻豆精品一区二区三区在线观看 |