1.將多行文本合并為一行
i=0while read linedoarr[$i]=$line((i++))doneecho ${arr[@]} //echo ${arr[@]}輸出所有的數(shù)組元素**Input**NamibiaNauruNepalNetherlandsNewZealandNicaraguaNigerNigeriaNorthKoreaNorway**Output**Namibia Nauru Nepal Netherlands NewZealand Nicaragua Niger Nigeria NorthKorea Norway2.將包含‘a(chǎn)’字母的文本行刪掉
i=0while read linedoarr[$i]=$line((i++))doneecho ${arr[@]/*[aA]*/}**Input**NamibiaNauruNepalNetherlandsNewZealandNicaraguaNigerNigeriaNorthKoreaNorway**Output**Niger**Output2**echo ${arr[@]/*[aA]*/hello} //使用hello替換掉所有包含a的文本行hello hello hello hello hello hello Niger hello hello hello3.將上述輸入文本重復(fù)輸出三次
X=$(paste -sd' ' fileName)echo $X $X $XX=$(cat fileName)echo $X $X $X**Output**Namibia Nauru Nepal Netherlands NewZealand Nicaragua Niger Nigeria NorthKorea Norway Namibia Nauru Nepal Netherlands NewZealand Nicaragua Niger Nigeria NorthKorea Norway Namibia Nauru Nepal Netherlands NewZealand Nicaragua Niger Nigeria NorthKorea Norway4.輸出某個(gè)元素
echo ${arr[3]}5.統(tǒng)計(jì)輸入文本有多少行
a.使用wc命令wc -lb.使用echo命令arr=($(cat))echo ${#arr[@]}c.使用for循環(huán)i=0while read linedoarr[$i]=$line((i++))doneecho "$i"6.將每行第一個(gè)大寫(xiě)字母替換為.
a.使用sed命令僅替換第一個(gè)大寫(xiě)字母為.sed 's/[A-Z]/./' | paste -sd ' 'b.使用數(shù)組的替換來(lái)實(shí)現(xiàn)X=($(cat)) echo "${X[@]/[A-Z]/.}"**Output**.amibia .auru .epal .etherlands .ewZealand .icaragua .iger .igeria .orthKorea .orway7.找出一組數(shù)據(jù)中落單的數(shù)
a.首先將' '替換為換行,然后對(duì)每行數(shù)據(jù)排序,獲取只出現(xiàn)一次的數(shù)字tr ' ' '/n' | sort | uniq -u題目出處:https://www.hackerrank.com/domains/shell/arrays-in-bash/page:1
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注