将Bash概要文件从远程系统复制到某个行号点

将Bash概要文件从远程系统复制到某个行号点,bash,shell,Bash,Shell,我想将一个文件从远程机器复制到本地机器上,直到包含特定模式的第一行 场景:使用远程Bash配置文件的一部分更新我的本地Bash配置文件,直到我的管理员验证它为止 有没有比这种快速的“shell脚本编写”更好的方法(我想可能有!) 远程机器:robottinosino wifi(OSX) Sentinel line:进一步验证此脚本 我可以使用基本的shell脚本,最好是在Bash中,因为它是默认的,或者是最常见的差异/源代码控制容器 你猜,这个想法最终会使这个过程自动化。克朗?你知道怎么做吗

我想将一个文件从远程机器复制到本地机器上,直到包含特定模式的第一行

场景:使用远程Bash配置文件的一部分更新我的本地Bash配置文件,直到我的管理员验证它为止

有没有比这种快速的“shell脚本编写”更好的方法(我想可能有!)

  • 远程机器:robottinosino wifi(OSX)
  • Sentinel line:进一步验证此脚本
我可以使用基本的shell脚本,最好是在Bash中,因为它是默认的,或者是最常见的差异/源代码控制容器

你猜,这个想法最终会使这个过程自动化。克朗?你知道怎么做吗?我的Bash概要文件的开始应该来自服务器,“rest”是免费的,我可以自定义

上一次失败的尝试:

  • 使用
    head
  • 使用过程替代
    sed(上一行)

重要提示:最理想的做法是远程系统遍历整个文件,而是在“看到”哨兵线后截断过滤器。。如果模式为第300行,则为100000000。。只需浏览300行即可。

问题在于您的sed命令的结构可以读取整个文件

您可以使用
sed-n'/验证此脚本/q;p'
找到行后退出:

ssh tinosino@robottinosino-wifi cat /Users/tinosino/.profile | sed -n '/Verify this script/q; p' > /home/tinosino/Desktop/tinosino_bash_profile.sh
或者不使用,这在本例中没有显著区别,但如果以后要删除多个节,则会传输较少的数据:

ssh tinosino@robottinosino-wifi "sed -n '/Verify this script/q; p' /Users/tinosino/.profile" > /home/tinosino/Desktop/tinosino_bash_profile.sh

问题是sed命令的结构是读取整个文件

您可以使用
sed-n'/验证此脚本/q;p'
找到行后退出:

ssh tinosino@robottinosino-wifi cat /Users/tinosino/.profile | sed -n '/Verify this script/q; p' > /home/tinosino/Desktop/tinosino_bash_profile.sh
或者不使用,这在本例中没有显著区别,但如果以后要删除多个节,则会传输较少的数据:

ssh tinosino@robottinosino-wifi "sed -n '/Verify this script/q; p' /Users/tinosino/.profile" > /home/tinosino/Desktop/tinosino_bash_profile.sh

只需在远程服务器上执行筛选

ssh tinosino@robottinosino-wifi sed -n 'p;/Verify.../q' /Users/tinosino/.profile \
  >>/home/tinosino/Desktop/tinosino_bash_profile.sh

-n
标志和
p
q
命令一起仅打印以“验证…”开头的第一行,但不包括该行。

只需在远程服务器上执行过滤即可

ssh tinosino@robottinosino-wifi sed -n 'p;/Verify.../q' /Users/tinosino/.profile \
  >>/home/tinosino/Desktop/tinosino_bash_profile.sh

-n
标志和
p
q
命令一起只打印以“Verify…”开头的第一行,但不包括这一行。

这纯粹是令人惊叹的。我只是喜欢
-n
+
;p
连哨兵线都没有的组合!谢谢(顺便说一句,一般来说,我不太在意cat的无用用法。)对于其他复制并粘贴到终端的人来说,顺便说一句,可能应该对单引号和分号进行反斜杠转义。你有什么例子说明何时转义单引号和分号是个好主意吗?在我的机器上,如果我不转义,你的一艘班轮跑不动了?它在你身上跑吗?好徒弟帮别人修好了!:)这纯粹是令人敬畏的。我只是喜欢
-n
+
;p
连哨兵线都没有的组合!谢谢(顺便说一句,一般来说,我不太在意cat的无用用法。)对于其他复制并粘贴到终端的人来说,顺便说一句,可能应该对单引号和分号进行反斜杠转义。你有什么例子说明何时转义单引号和分号是个好主意吗?在我的机器上,如果我不转义,你的一艘班轮跑不动了?它在你身上跑吗?好徒弟帮别人修好了!:)他绝对做到了:)此外,我的更紧凑,因为我懒得打字(甚至剪切粘贴)哨兵。事实上,我的
甚至是有效的,这与它是一个有效的正则表达式是巧合的。他绝对做到了:)此外,我的更紧凑,只是因为我懒得键入(甚至剪切和粘贴)哨兵。我的
甚至是有效的,这与它是一个有效的正则表达式是巧合的。