带管道和变量的 grep 无法通过 ssh 在远程服务器上工作(在本地工作)

带管道和变量的 grep 无法通过 ssh 在远程服务器上工作(在本地工作)

如果我从远程计算机通过 ssh 运行下面的 grep 命令(启用无密码身份验证),则它不会给出预期结果(匹配行号)。变量也已正确定义。

从服务器 1 :

ssh user@server2 grep -n -i $J2C_ID1 $CUST_NODE_PATH1/resources.xml | awk '{print $1}' | tr -d ':'

上面的命令返回空白输出。

从服务器 2(本地运行)返回预期输出,即行号:

grep -n -i $J2C_ID1 $CUST_NODE_PATH1/resources.xml | awk '{print $1}' | tr -d ':' 

474

(预期输出,即指定文件 resources.xml 上 $J2C_ID 中指定的匹配字符串的行号)

我尝试修改给我整行作为输出的命令,尽管我只需要行号而不是整行:

ssh user@server2 grep -n -i "'$J2C_ID1' '$CUST_NODE_PATH1/resources.xml' | awk '{print $1}' | tr -d ':'"

474        <resourceProperties xmiid="J2EEResourceProperty" name="Password" type="java.lang.String" value="null" description="password" required="false" ignore="false" confidential="false" supportsDynamicUpdates="false"/>

需要删除多余的文本并仅将行号视为 o/p。

您能否帮助修复命令以成功运行并返回匹配字符串 IF 从另一台服务器作为 ssh 运行的行号?非常感谢快速帮助。

谢谢

相关内容