如果我从远程计算机通过 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 运行的行号?非常感谢快速帮助。
谢谢