リダイレクトされる特定の行を無視する方法

リダイレクトされる特定の行を無視する方法

リダイレクトを介して入力ファイルのいくつかの指示を入力して実行するプログラムがあります。私の入力ファイルは次のとおりです。

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ソリューションも効果があります。

おすすめ記事