要使用文件作为程序的输入,<
可以使用运算符。
例如,
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)