Linux

如何輸出具有特殊模式的列

  • January 21, 2017

我有一個專欄,有幾句話:

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

引用自:https://serverfault.com/questions/827638