我在linux --help中找不到这个。 请告诉我这些命令正在执行什么操作
NAME=gs://toto-titi-dfs-dfe-gfd-zed/
那么模棱两可的命令是:
NAME="${NAME//\\/\\\\}"
NAME="${NAME//\//\\/}"
然后我们有以下两个命令:
sudo sed -i "s/spark\.eventLog\.dir.*/spark\.eventLog\.dir $NAME/g" /usr/lib/spark/conf/spark-defaults.conf
sudo sed -i "s/spark\.history\.fs\.logDirectory.*/spark\.history\.fs\.logDirectory $NAME/g" /usr/lib/spark/conf/spark-defaults.conf
我也听不懂
对此有任何帮助
非常感谢
答案 0 :(得分:1)
NAME
设置为字符串gs://toto-titi-dfs-dfe-gfd-zed/
\
在该变量中交换\\
和NAME="${NAME//\\/\\\\}"
的所有/
实例,详细了解Shell Parameter Expansion here标记为 $ {parameter / pattern / string}的部分。\/
在NAME
变量中用AME="${NAME//\//\\/}"
交换/
的所有实例。执行这两个步骤是为了逃避\
变量中的NAME
和sed
,以使/usr/lib/spark/conf/spark-defaults.conf
不会阻塞。 spark.eventLog.dir.*
中将spark.eventLog.dir $NAME
的匹配项替换为/usr/lib/spark/conf/spark-defaults.conf
spark.history.fs.logDirectory.*
中将spark.history.fs.logDirectory $NAME
的匹配项替换为UnprocessedKeys