最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

多行文本轉(zhuǎn)成一行的實(shí)現(xiàn)方法

2023-07-10 19:47 作者:Cpp程序員  | 我要投稿

不知道你們有沒有遇到過下面的情況,以我為例

有時(shí)候我會(huì)收到批量操作服務(wù)器的需求,且我會(huì)拿到一個(gè)服務(wù)器 ip 列表,它是一個(gè)多行的形式,如下所示

# ip 列表192.168.0.1 192.168.0.2 192.168.0.3 192.168.0.4 192.168.0.5 192.168.0.6

但我使用 saltstack 進(jìn)行批量操作時(shí),我需要將上面的多行 ip 轉(zhuǎn)成一行的形式才能執(zhí)行 saltstack 命令

192.168.0.1,192.168.0.2,192.168.0.3,192.168.0.4,192.168.0.5,192.168.0.6# saltstack 批量操作命令例子 salt -L '192.168.0.1,192.168.0.2,192.168.0.3,192.168.0.4,192.168.0.5,192.168.0.6' cmd.run 'ls -l'

如果是少量 ip,直接手動(dòng)操作就行;如果 ip 數(shù)量特別多,手動(dòng)轉(zhuǎn)換的話就特別的麻煩了

下面我將介紹兩個(gè)比較常見的多行文本轉(zhuǎn)一行的實(shí)現(xiàn)方法,如果大家有更好的方法的話,歡迎大家積極討論參與!

shell 命令實(shí)現(xiàn)

tr?命令

tr?命令用于轉(zhuǎn)換或刪除文本中的字符,我們可以通過?tr --help?來查看它的幫助文檔

下面是一些關(guān)于?tr?命令的例子

#替換字符echo "hello" | tr 'o' 'a' ? # 輸出結(jié)果:hella#刪除字符echo "hello" | tr -d 'l' ? # 輸出結(jié)果:heo#壓縮連續(xù)字符:echo "hello" | tr -s 'l' ? # 輸出結(jié)果:helo

知道了這個(gè)命令的大概用法之后,我們就可以通過?tr?命令來實(shí)現(xiàn)多行轉(zhuǎn)一行

#命令如下:cat <<EOF | tr '\n' ',' 192.168.0.1 192.168.0.2 192.168.0.3 192.168.0.4 192.168.0.5 192.168.0.6 EOF

上面的命令可以分為兩個(gè)部分,第一部分如下:

#第一部分cat <<EOF 192.168.0.1 192.168.0.2 192.168.0.3 192.168.0.4 192.168.0.5 192.168.0.6 EOF

  • 使用?cat?命令和?<<EOF?結(jié)構(gòu),它指示將下面的文本內(nèi)容作為輸入傳遞給?cat?命令

  • EOF:終止符,用于標(biāo)識(shí)輸入的結(jié)束

EOF在Linux中是一種約定的標(biāo)記,用于指示輸入的結(jié)束,它在不同的上下文中有不同的用途

在Here Document結(jié)構(gòu)中,EOF用于標(biāo)記輸入文本的開始和結(jié)束;在文件輸入中,EOF用于表示輸入的結(jié)束

有關(guān) Here Document 內(nèi)容:Here Document and Here String | Baeldung on Linux

上面命令輸出如下:

接下來我們來看第二部分

#第二部分tr '\n' ','

使用?tr?命令,它將?'\n'?(換行符)替換為逗號(hào)?','?。tr?命令用于字符轉(zhuǎn)換,'\n'?是被替換的字符,','?是替換的字符

第一部分和第二部分通過管道符?|?連接起來,表示將?cat?命令的輸出傳遞給?tr?命令處理

我們來看下輸出結(jié)果

Notepad++ 實(shí)現(xiàn)

這個(gè)方法適用于在 Windows 系統(tǒng),用 Notepad 實(shí)現(xiàn)

把多行 IP 復(fù)制到 Notepad 中,然后選中內(nèi)容——>輸入查找目標(biāo)和替換內(nèi)容——>點(diǎn)擊全部替換(注意下面的查找模式換成正則表達(dá)式)

  • \r\n?表示換行符,(.+)表示匹配任意字符,且至少匹配一次

  • \1?表示引用查找到的文本,,?表示逗號(hào)

需要注意的是,替換換行符之前你得先知道文本內(nèi)容中的換行符是 Windows 格式(\r\n) 還是 UNIX 格式(\n


多行文本轉(zhuǎn)成一行的實(shí)現(xiàn)方法的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
萨嘎县| 子长县| 阿勒泰市| 淄博市| 阿荣旗| 嘉鱼县| 泸西县| 东乡族自治县| 吉水县| 江安县| 高雄市| 抚宁县| 南开区| 宁蒗| 巴楚县| 海宁市| 百色市| 沾化县| 大丰市| 施甸县| 电白县| 民和| 当涂县| 桃江县| 山东省| 寿光市| 余姚市| 崇阳县| 襄垣县| 南雄市| 孝义市| 霍林郭勒市| 阜南县| 景德镇市| 陇川县| 施甸县| 武夷山市| 崇州市| 木兰县| 南汇区| 施秉县|