リダイレクトを介して入力ファイルのいくつかの指示を入力して実行するプログラムがあります。私の入力ファイルは次のとおりです。
alpha
5
2
run
7
quit
次に、次のように実行します。
myprogram < input_file
しかし、時には明確にするために入力ファイルにいくつかの説明を追加する必要があります。
# The name of value
alpha
# The acceleration
5
# The distance
2
run
7
quit
残念ながら、今はプログラムが無視されていないため、プログラムにリダイレクトできません。#
にリダイレクトする前に、これらのコメント行をどのように無視できますかmyprgram
?
ベストアンサー1
grep
以下を使用して、「#」で始まる行をフィルタリングできます。
grep -v '^#' input_file | myprogram
渡される文字列はgrep
正規表現です。行の先頭( )と一致し、^
その後に#
。-v
このパターンと一致しない行が表示されるように、ロジックを逆に置き換えます。
通常、行内のデータを変更するには、grep
単に行全体を表示/削除することを選択します。sed
もちろん、このsed
ソリューションも効果があります。