1つの単語でスペースがあり、2番目の単語で複数のスペースがある単語を読み取ろうとします。見つけることができるショートカットはありますか?
UNLIMITED TABLESPACE TRUSH
SELECT ANY DICTIONARY KENNYGO
例によると、1つの単語と2番目の単語にUnlimited Tablespace
なります。 1つの単語と2番目の単語。Trush
Select any dictionary
Kennygo
read
これを行うには、次のコマンドを使用しようとします。
while IFS=" " read -r privilege name; do
echo "$privilege" break "$name"
done < sysprivs.exp
現在の結果セットは次のとおりです。
UNLIMITED break TABLESPACE TRUSH
SELECT break ANY DICTIONARY KENNYGO
どんな提案がありますか?
答え1
まず、入力をフィルタリングして、read
繰り返す前に複数のスペースを改行に変換できます。
(<sysprivs.exp sed 's/\ \ \+/\n/g' | while read word; do echo "Word: \`$word'"; done)
出力:
Word: `UNLIMITED TABLESPACE'
Word: `TRUSH'
Word: `SELECT ANY DICTIONARY'
Word: `KENNYGO'