コマンドの特定の行から始まるプログラムへの入力としてファイルを使用する方法は?


0

ファイルをプログラムの入力として使用するには、<演算子を使用できます。

例えば、

xmacroplay "$DISPLAY" < input.txt

ただし、ファイル全体を使用せず、入力として一部の行のみを使用するかどうかを指定するコマンドはありますか?

いくつかのような、

xmacroplay "$DISPLAY" < input.txt --starting_line=100 --ending_line=120

(これは確かに機能しません。そのようなオプションがあるかどうかを知りたいだけです)

回答:


1

使用するsedか、別のツールは、コマンドに固有のラインとパイプそれをフィルタリングします。たとえば、次の例では、ファイルの10行目と13行目のみを送信しますxmacroplay

sed -n '10p; 13p' input.txt | xmacroplay "$DISPLAY" --starting_line=100 --ending_line=120

またはawk

awk 'NR == 10 || NR == 13' input.txt | xmacroplay "$DISPLAY" --starting_line=100 --ending_line=120

何らかの理由でパイプを使用できない場合は、プロセス置換を使用します。

xmacroplay "$DISPLAY" --starting_line=100 --ending_line=120 < <(sed -n '10p; 13p' input.txt)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.