Linux
如何輸出具有特殊模式的列
我有一個專欄,有幾句話:
scatman batman superman scatman scatman batman superman scatman scatman batman superman scatman batman WWWWWWWW superman scatman batman superman scatman
我應該做一些模式,我需要一個字一個字三個字:scatman,batman,superman。在哪裡,我有重複的單詞,比如第 4 行和第 5 行的 scatman 和 scatman 或者我有其他單詞的地方,我應該刪掉我寫的:
grep "scatman\|batman\|superman" file
好的,我拒絕了 WWWWWWWW 這個詞,但我不明白如何逐字顯示我的專欄。我有結果:
scatman batman superman scatman scatman batman superman scatman scatman batman superman scatman batman superman scatman batman superman scatman
在第 4 行和第 5 行,我有重複的單詞,但我不喜歡這樣。我哪裡有錯誤?
這將完全按照您的意願進行
#!/bin/bash array=( [0]="scatman" [1]="batman" [2]="superman" ) count=0 while read line; do for i in "${array[@]}"; do if [[ $count == 3 ]]; then count=0 fi if [[ $line == ${array[$count]} ]]; then #echo "$line" printf "%s " $line # uncomment if you want every word on a new line #echo "$line" >> newfile.txt # each word on a line #or # uncomment if you want all will be on one line #printf "%s " $line >> newfile.txt count=$((count+1)) else continue fi done done < file.txt #this is your original file
將在新行上列印出每個單詞,如下所示:
scatman batman superman scatman batman superman scatman batman superman scatman batman superman scatman batman superman scatman
或者像這樣的一行:
scatman batman superman scatman batman superman scatman batman superman scatman batman superman scatman batman superman scatman