[解決済み] コマンドの出力を配列に代入する方法を教えてください。
2023-01-24 19:37:24
質問
の結果を
grep
からの結果を配列に代入したいのですが、例えば
grep -n "search term" file.txt | sed 's/:.*//'
この結果、検索語が見つかった行番号を持つ行が大量に表示されました。
1
3
12
19
bashの配列に代入する一番簡単な方法は何でしょうか?単純に変数に代入すると、スペースで区切られた文字列になってしまいます。
どのように解決するのですか?
コマンドの出力を配列に代入するには、配列代入の内部でコマンド代入を使用する必要があります。一般的なコマンドの場合
command
のようになります.
arr=( $(command) )
OPの例では、こうなります。
arr=($(grep -n "search term" file.txt | sed 's/:.*//'))
内側の
$()
はコマンドを実行し、外側の
()
は出力が配列になるようにします。この場合の問題は、コマンドの出力にスペースが含まれている場合に動作しないことです。これを処理するために
IFS
を
\n
.
IFS=$'\n' arr=($(grep -n "search term" file.txt | sed 's/:.*//'))
また、配列の各要素に対して展開を行うことで、sedの必要性をなくすことができます。
arr=($(grep -n "search term" file.txt))
arr=("${arr[@]%%:*}")
関連
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] 配列に特定のインデックスで項目を挿入する方法 (JavaScript)
-
[解決済み] Javaで配列に特定の値が含まれているかどうかを判断するにはどうすればよいですか?
-
[解決済み] Bashでコマンドライン引数を解析するには?
-
[解決済み] Bashでコマンドの出力に変数を設定するにはどうすればよいですか?
-
[解決済み】配列に何かを追加する方法は?
-
[解決済み] bashでグローバルを使用せずに配列を返すには?
-
[解決済み] Bashでテキストファイルから配列を作成する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] MIPSで配列を作る(アクセスする)方法
-
[解決済み] 配列から要素を1つだけ値で削除する方法
-
[解決済み] MATLABで動的配列を作成する方法
-
[解決済み] MATLABのnumel関数とlength関数の違いについて
-
[解決済み] 最大和サブアレイのブルートフォースはなぜO(n^2)なのか?
-
[解決済み] 最大単品販売利益
-
[解決済み] Bashでfindコマンドの結果を配列として保存するには?
-
[解決済み] Swiftで配列のすべてのメンバーを同じ値で初期化する方法は?
-
[解決済み] Swiftで配列を集合にする
-
[解決済み] Swiftのクロージャで$0と$1は何を意味するのか?