我有一个字符串格式的命令。
toserver="scp -q -i ssh_key1.pem outfile ec2-user@ec2-18-205-233-131.compute-1.amazonaws.com:/home/ec2-user/outfile"
并且,从上面我想要交换文件位置并创建新的变量。我的意思是,就像下面。
fromserver="scp -q -i ssh_key1.pem ec2-user@ec2-18-205-233-131.compute-1.amazonaws.com:/home/ec2-user/outfile outfile"
输出文件名不会改变,但服务器地址可能会改变。请建议怎么做。
使用sed
$ fromserver=$(printf '%sn' "$toserver" | sed s'/([^.]*.[^ ]*) ([^ ]*) (.*)/1 3 2/')
$ echo "$fromserver"
scp -q -i ssh_key1.pem ec2-user@ec2-18-205-233-131.compute-1.amazonaws.com:/home/ec2-user/outfile outfile