我正在尝试创建sed脚本,其中用户提供哪些行将被过滤,但是我不知道如何应用变量。
from=$1 to=$2 if [[ -z $1 ]] then from=10 fi if [[ -t $2 ]] then to=20 fi result=$(sed -n -e '10,20p' /usr/share/wordlists/rockyou.txt) printf "%s\n" $result
我尝试直接向sed脚本提供变量,但这只会引发一些错误。
5t7ly7z51#
您可以通过在表达式中引用变量来使用sed脚本中的变量。下面是使用这些变量的脚本的更新版本:
from=${1:-10} to=${2:-20} result=$(sed -n "${from},${to}p" /usr/share/wordlists/rockyou.txt) printf "%s\n" "$result"
from变量设置为第一个参数的值,如果未提供第一个参数,则设置为10。to变量设置为第二个参数的值,如果未提供第二个参数,则设置为20。然后,在sed表达式中使用这些变量,方法是将它们括在双引号中并直接引用它们。
1条答案
按热度按时间5t7ly7z51#
您可以通过在表达式中引用变量来使用sed脚本中的变量。下面是使用这些变量的脚本的更新版本:
from变量设置为第一个参数的值,如果未提供第一个参数,则设置为10。to变量设置为第二个参数的值,如果未提供第二个参数,则设置为20。
然后,在sed表达式中使用这些变量,方法是将它们括在双引号中并直接引用它们。