日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

linux tr 变量大小写,使用tr命令快速达到大小写互换——深圳培训linux

發(fā)布時(shí)間:2025/4/5 linux 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux tr 变量大小写,使用tr命令快速达到大小写互换——深圳培训linux 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本文,主要講的是Linux利用tr命令輕松實(shí)現(xiàn)大小寫(xiě)轉(zhuǎn)換,深圳培訓(xùn)linux希望通過(guò)本文的學(xué)習(xí),大家都能實(shí)現(xiàn)利用tr命令輕松實(shí)現(xiàn)大小寫(xiě)轉(zhuǎn)換。系統(tǒng)工程師有時(shí)候在系統(tǒng)維護(hù)的時(shí)候,需要將某個(gè)文件中的內(nèi)容進(jìn)行大小寫(xiě)的轉(zhuǎn)換,利用tr命令輕松實(shí)現(xiàn)大小寫(xiě)轉(zhuǎn)換就可以使工作變得輕松快捷。

Linux利用tr命令輕松實(shí)現(xiàn)大小寫(xiě)轉(zhuǎn)換,系統(tǒng)工程師有時(shí)候在系統(tǒng)維護(hù)的時(shí)候,需要將某個(gè)文件中的內(nèi)容進(jìn)行大小寫(xiě)的轉(zhuǎn)換。如系統(tǒng)工程師從網(wǎng)上下載了一個(gè)腳本文件。但是腳本文件的主人有個(gè)怪癖,對(duì)于一些備注的內(nèi)容希望采用大寫(xiě)字母來(lái)描述。這可能跟某些工程師的閱讀習(xí)慣不一致。為此需要將這些大寫(xiě)字符轉(zhuǎn)換寫(xiě)小寫(xiě)字母。

當(dāng)然,系統(tǒng)工程師可以手工的一個(gè)個(gè)進(jìn)行修改。但是,顯然操作起來(lái)很麻煩。為此系統(tǒng)工程師就會(huì)想,在Unix操作系統(tǒng)中是否提供了類(lèi)似的工具,可以將大寫(xiě)字符轉(zhuǎn)換為小寫(xiě)字母呢?確實(shí),在Unix操作系統(tǒng)中提供了一個(gè)tr命令。這是一個(gè)強(qiáng)盜的字符轉(zhuǎn)換命令,可以實(shí)現(xiàn)包括字符大小寫(xiě)轉(zhuǎn)換在內(nèi)地很多功能。

一、tr字符變換命令的基本格式格式要求。

在Unix操作系統(tǒng)中,針對(duì)整行的內(nèi)容或者字段的命令有很多。相比之下,對(duì)一行中的字符進(jìn)行操作的命令卻比較少。這并不是說(shuō)對(duì)字符操作不重要。而是因?yàn)閠r這個(gè)字符變換命令就可以實(shí)現(xiàn)大部分字符處理的功能。這個(gè)命令的主要功能就是對(duì)字符串進(jìn)行替換。如下圖所示,筆者就是使用tr命令,先將一個(gè)文件中的字母a全部使用字母c來(lái)代替。然后第二個(gè)例子就是想文件中的小寫(xiě)字符全部轉(zhuǎn)

這個(gè)命令的基本格式為tr 可選項(xiàng) 參數(shù)1 參數(shù)2 標(biāo)準(zhǔn)輸入

這個(gè)命令的可選項(xiàng)雖然不是很多,但是都比較使用。通常搭配不同的可選項(xiàng),可以實(shí)現(xiàn)不同的功能。另外在這個(gè)命令中,有一個(gè)比較特殊的部分,即標(biāo)準(zhǔn)輸出。這是什么意思呢?而且在這個(gè)命令中沒(méi)有文件名這個(gè)參數(shù)。那么如果將一個(gè)文件中的內(nèi)容轉(zhuǎn)換為英文字符呢?原來(lái),這個(gè)命令只接受標(biāo)準(zhǔn)輸入,而不接受文件名作為參數(shù)。為此如果要將某個(gè)文件中的內(nèi)容進(jìn)行大小寫(xiě)轉(zhuǎn)換時(shí),就需要按照上面的格式,先將文件中的內(nèi)容讀取出來(lái),然后再利用管道符等工具將讀取出來(lái)的內(nèi)容傳遞給命令tr。然后再利用這個(gè)tr命令進(jìn)行大小寫(xiě)轉(zhuǎn)換或者進(jìn)行簡(jiǎn)單的字符替換。在使用標(biāo)準(zhǔn)輸入的時(shí)候,系統(tǒng)工程師即可以將標(biāo)準(zhǔn)輸入放在這個(gè)命令的尾部。也可以使用管道符將標(biāo)準(zhǔn)輸入放在命令的開(kāi)頭。筆者比較喜歡的是將標(biāo)準(zhǔn)輸入放在命令開(kāi)頭。這兩個(gè)方式都可以,沒(méi)有什么差異。主要是看系統(tǒng)工程師的習(xí)慣而定。

二、實(shí)現(xiàn)大小寫(xiě)轉(zhuǎn)換。

筆者上面提到的第二個(gè)案例就是將文件text.txt中內(nèi)容進(jìn)行大小寫(xiě)轉(zhuǎn)換。將文件中所有小寫(xiě)字符轉(zhuǎn)換成大寫(xiě)。筆者采用的命令是head –n

-2 text.txt | tr ‘[a-z]’

‘[A-Z]’。由于這個(gè)命令不支持文件名作為其參數(shù),而支持標(biāo)準(zhǔn)輸入。為此筆者就用head命令讀取文件的前面幾行。由于一些腳本文件往往是將這個(gè)腳本的功能說(shuō)明放置在文件的開(kāi)頭,所以利用head命令來(lái)讀取文本的前面幾行是合理的。如此的話(huà),就可以避免對(duì)整個(gè)腳本文件進(jìn)行轉(zhuǎn)換。要知道shell對(duì)大小寫(xiě)是敏感的。如果對(duì)一些命令和參數(shù)進(jìn)行了一些不恰當(dāng)?shù)霓D(zhuǎn)換,有可能會(huì)出現(xiàn)莫名其妙的錯(cuò)誤。為此只需要對(duì)腳本文件前面幾行的注釋部分進(jìn)行大小寫(xiě)轉(zhuǎn)換即可。

另外筆者在這個(gè)命令中用到一些具有特殊意義的元字符,如[]等等。在參數(shù)中如果遇到元字符的話(huà),往往需要采用轉(zhuǎn)義或者引用的機(jī)制,來(lái)告訴操作系統(tǒng)將這些字符當(dāng)作普通字符來(lái)對(duì)待。一般情況下,系統(tǒng)工程師如果對(duì)他們不需要進(jìn)行變量取值或者命令替換時(shí),必須要使用單引號(hào)等引用或者轉(zhuǎn)移字符。根據(jù)筆者上篇文章談到過(guò)的雙引號(hào)與單引號(hào)的相互保護(hù)作用,系統(tǒng)工程師還可以將命令中的表達(dá)式賦值給兩個(gè)變量。然后將變量放置在雙引號(hào)中,求其變量的值。

三、替換某些特定的字符。

在Unix操作系統(tǒng)中有一類(lèi)比較特殊的文件,即lst文件。這個(gè)文件跟表格文件非常的類(lèi)似,都是使用分隔符來(lái)分隔各個(gè)字段。默認(rèn)情況下,這個(gè)分隔符沒(méi)有固定的限制。如可以使用|符號(hào)來(lái)進(jìn)行分隔,也可以使用空格符或者TAB鍵來(lái)進(jìn)行分隔。也就算說(shuō),各位讀者可以根據(jù)自己的需要來(lái)設(shè)置分隔符。不過(guò)這給文件共享帶來(lái)了麻煩。因?yàn)橐粋€(gè)文件按一定的分隔符號(hào)建立完成后,下次閱讀時(shí)就只能夠按照這個(gè)分隔符號(hào)。如果要采用其他的分隔符的話(huà),就需要進(jìn)行手工的調(diào)整。現(xiàn)在假設(shè)一個(gè)項(xiàng)目團(tuán)隊(duì)中的工程師A喜歡采用-分隔符,而另外一個(gè)工程師則喜歡采用|分隔符。那該怎么辦呢?難道需要一個(gè)個(gè)去更換呢?

其實(shí)要實(shí)現(xiàn)這個(gè)轉(zhuǎn)換的方式還是比較多的。如可以使用查找命令配合循環(huán)語(yǔ)句,將這個(gè)文件中的所有-符號(hào)都轉(zhuǎn)換成|符號(hào)。不過(guò)利用循環(huán)語(yǔ)句與查找替換命令來(lái)實(shí)現(xiàn)這個(gè)功能的話(huà)有點(diǎn)復(fù)雜,并一定每個(gè)系統(tǒng)工程師都可以在短時(shí)間內(nèi)寫(xiě)出這么復(fù)雜的語(yǔ)句。其實(shí)采用這個(gè)tr命令就可以輕松的將這件事情搞定。如利用

tr ‘-‘

‘|’即可。另外如果系統(tǒng)工程師想刪除這個(gè)分隔符,也是可以的。只需要采用一個(gè)可選項(xiàng)-d,就可以將所有的-分隔符去掉。

另外如果采用-s可選項(xiàng)還可以壓縮多個(gè)連續(xù)的字符。如可以壓縮處理系統(tǒng)命令輸出結(jié)果中的多個(gè)連續(xù)空格等等。如采用-c可選項(xiàng)可用于求表達(dá)式中字符的補(bǔ)集等等。而且最讓人驚奇的是,這幾個(gè)可選項(xiàng)結(jié)合使用,還可以實(shí)現(xiàn)一些比較復(fù)雜的功能。各位讀者回去可以想一下,如果想刪除某幾個(gè)特定字符以外的一些字符,該入如何實(shí)現(xiàn)呢?筆者提醒一下,結(jié)合采用可選賢-c與-d可以實(shí)現(xiàn)這個(gè)需求。大家可以回去測(cè)試一下。

四、使用這個(gè)命令的注意事項(xiàng)。

1、眾所周知,在Unix操作系統(tǒng)中,無(wú)論是文件名還是目錄名,又或者是命令,對(duì)于大小寫(xiě)都是敏感的。這根微軟操作系統(tǒng)有很大的不同。為此在這個(gè)命令中,需要用到兩個(gè)參數(shù)。在這個(gè)參數(shù)中大小寫(xiě)也是敏感的。如tr

a c與tr A

c具有不同的含義。第一個(gè)命令是將小寫(xiě)的英文字符a利用小寫(xiě)的英文字符c來(lái)替換。而第二個(gè)命令表示利用小寫(xiě)的英文字符c去替換所有大寫(xiě)的英文字符A。為此筆者提醒各位系統(tǒng)工程師,在使用這個(gè)命令的時(shí)候第一個(gè)主要注意的就是參數(shù)的大小寫(xiě)一定要一致。否則的話(huà),很難達(dá)到預(yù)計(jì)的效果。

2、兩個(gè)字符串中長(zhǎng)度需要相同。通常情況下采用這個(gè)命令會(huì)將第一個(gè)參數(shù)中的字符變換成第二個(gè)參數(shù)中的相應(yīng)字符。也就是說(shuō),利用第二個(gè)參數(shù)中的第一個(gè)字符替換成第一個(gè)參數(shù)中的第一個(gè)字符,依此類(lèi)推,其他字符也按照這個(gè)規(guī)則進(jìn)行替換。此時(shí),如果兩個(gè)參數(shù)的長(zhǎng)度不相等的話(huà),那么會(huì)出現(xiàn)什么情況呢?如

tr abc

ab。此時(shí)第一個(gè)參數(shù)表達(dá)式將找不到對(duì)應(yīng)的字符。即系統(tǒng)不知道將字符c利用什么字符來(lái)代替。為此在使用這個(gè)命令時(shí),要確保兩個(gè)參數(shù)的長(zhǎng)度必須相等。

3、利用變量提高腳本程序的可用性。有時(shí)候系統(tǒng)工程師可能需要經(jīng)常用到類(lèi)似的轉(zhuǎn)換功能。如使用這個(gè)命令可以簡(jiǎn)單的實(shí)現(xiàn)一些文件的加密作業(yè)。如可以預(yù)先將英文字符、數(shù)字等等建立一個(gè)一一對(duì)應(yīng)的關(guān)系。然后寫(xiě)完內(nèi)容之后,可以利用tr命令將文本轉(zhuǎn)換為毫無(wú)意義的一個(gè)文件。如果不知道這種對(duì)應(yīng)關(guān)系的話(huà),那么其他用戶(hù)即使得到這個(gè)文件也不能夠破譯出到底這個(gè)文本想表示什么內(nèi)容。然后知道這個(gè)對(duì)應(yīng)關(guān)系的用戶(hù),拿到這個(gè)文件后,再次反向執(zhí)行一下這個(gè)命令(即將前后兩個(gè)參數(shù)位置對(duì)調(diào)一下),就可以將文本的內(nèi)容轉(zhuǎn)換成原先的內(nèi)容。如果建立好這個(gè)腳本之后,就可以重復(fù)利用這個(gè)腳不程序來(lái)對(duì)一些文件進(jìn)行簡(jiǎn)單的加密。但是要提高其安全性的話(huà),往往需要不斷的對(duì)這個(gè)對(duì)應(yīng)的規(guī)則進(jìn)行調(diào)整。此時(shí)是否需要更改腳本文件呢?其實(shí)不用。因?yàn)檫@個(gè)tr命令支持變量。其實(shí)就是將命令中的兩個(gè)參數(shù)分別賦值給兩個(gè)變量。然后在執(zhí)行命令的時(shí)候讓系統(tǒng)分別對(duì)這兩個(gè)變量求值,得出正確的對(duì)應(yīng)規(guī)則。如此的話(huà),當(dāng)需要更改對(duì)應(yīng)規(guī)則時(shí),不需要改變這個(gè)腳本。只需要修改這兩個(gè)變量的值即可。

收集于網(wǎng)絡(luò),僅供大家分享學(xué)習(xí)!

總結(jié)

以上是生活随笔為你收集整理的linux tr 变量大小写,使用tr命令快速达到大小写互换——深圳培训linux的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 制服诱惑一区二区三区 | 免费福利视频网站 | 小早川怜子久久精品中文字幕 | 欧美日韩经典 | 欧美精品在线观看 | 国产露出视频 | 蜜桃视频色 | 先锋影音一区二区三区 | 久久高清无码电影 | 国产精品视频入口 | 亚洲你懂得 | 久久视频免费在线观看 | 免费一级特黄3大片视频 | 国产人妖在线 | 欧美日韩国产麻豆 | 黄色操人视频 | kendra lust free xxx| 精品国产视频一区二区三区 | 伊人久久香 | 欧美xxxx非洲 | 色欲av永久无码精品无码蜜桃 | 国产77777| 日韩亚洲精品在线 | 伊人国产一区 | 日韩av免费在线观看 | 久久综合色鬼 | 亚洲射图 | 另类天堂av | 欧美美女性生活 | 亚洲成人婷婷 | av黄页| aa毛片视频 | 国产精品欧美久久久久久 | 美女网站av | 亚洲中文字幕在线观看 | 亚洲一级电影 | 特黄特色大片免费播放器使用方法 | 三级精品视频 | 国产精品第 | 无人在线观看高清视频 | 中文字幕欧美人妻精品 | 怡红院成人在线 | 夜夜骑夜夜操 | 国产精品美女久久久久 | 黄页在线播放 | 久久综合免费视频 | 91成人小视频 | 日韩中文字幕2019 | 日韩亚洲区 | 日韩电影第一页 | 黑人一区二区三区四区五区 | 香蕉久久精品 | 亚洲一区电影在线观看 | 成人免费毛片糖心 | 天堂久久久久 | 亚洲无打码 | 久久羞羞 | 男女啪啪无遮挡 | 国产69久久 | 蜜臀av一区二区 | av成人在线看 | 中文字幕无码乱码人妻日韩精品 | 91大神在线看 | 天堂视频免费 | 一级片麻豆 | 日本久操 | 国产做爰高潮呻吟视频 | 国产91精品久久久久 | 97视频免费在线观看 | 白白色视频在线 | 国产欧美日韩久久 | 精品人妻伦一二三区免费 | 亚洲人一区二区三区 | 亚洲精品久久久久久 | 一区二区日韩在线观看 | 男人插女人免费视频 | 亚洲高清在线观看 | 少妇在线观看 | 欧美成人资源 | 伊人色综合久久久 | 四虎看黄| 黄色一级片免费在线观看 | 亚洲 自拍 另类 欧美 丝袜 | 艹男人的日日夜夜 | 初尝黑人巨炮波多野结衣 | 亚洲综合一区二区三区 | 亚洲区一| 白嫩情侣偷拍呻吟刺激 | 蜜桃色999 | 久久综合免费视频 | 色噜噜狠狠一区二区三区果冻 | 茄子视频懂你更多在线观看 | 午夜激情视频网 | 亚洲欧美精品午睡沙发 | 成人片免费看 | 亚洲小说春色综合另类 | 美日韩精品一区二区 | 中文字幕人成人乱码亚洲电影 | 最近免费中文字幕大全免费版视频 |