有谁知道这是什么意思? -----> sed:-e表达式#1,char 28:未知命令:`。'

时间:2017-12-04 02:15:28

标签: linux

\#Add another new line of text to hosts and send the output to       

hosts_update.sh
sed '/localhost/a\

# Gateway
10.0.0.1    it20.it.cs.umb.edu  it20

# Addresses for the Windows PCs
10.0.0.240  it21.it.cs.umb.edu it21\
10.0.0.241  it22.it.cs.umb.edu it22\
10.0.0.242  it23.it.cs.umb.edu it23\
10.0.0.243  it24.it.cs.umb.edu it24\
10.0.0.244  it25.it.cs.umb.edu it25\
10.0.0.245  it26.it.cs.umb.edu it26\
10.0.0.246  it27.it.cs.umb.edu it27\
10.0.0.247  it28.it.cs.umb.edu it28\
' hosts > hosts_update.sh

1 个答案:

答案 0 :(得分:1)

首先,对于shell脚本,您的初始几行看起来很远。看起来您的hosts_update.sh行应该是评论的一部分(评论不应该以{{1​​}}开头):

\

其次,您需要在每行行的末尾# Add another new line of text to hosts and send the output # to hosts_update.sh \附加sed,此时您只在某些选择行上显示该行。# Add another new line of text to hosts and send the output # to hosts_update.sh sed '/localhost/a\ \ # Gateway\ 10.0.0.1 it20.it.cs.umb.edu it20\ \ # Addresses for the Windows PCs\ 10.0.0.240 it21.it.cs.umb.edu it21\ 10.0.0.241 it22.it.cs.umb.edu it22\ 10.0.0.242 it23.it.cs.umb.edu it23\ 10.0.0.243 it24.it.cs.umb.edu it24\ 10.0.0.244 it25.it.cs.umb.edu it25\ 10.0.0.245 it26.it.cs.umb.edu it26\ 10.0.0.246 it27.it.cs.umb.edu it27\ 10.0.0.247 it28.it.cs.umb.edu it28\ ' hosts > hosts_update.sh 。考虑到这一点,这个脚本可能就是你想要的:

\

在你的情况下实际发生了什么(没有sed '/localhost/a\ # Gateway 10.0.0.1 it20.it.cs.umb.edu it20 连续字符):

localhost

是:

  • sed;
  • 之后附加一个空行
  • 然后你有sed评论专栏;
  • 然后您告诉.在第10行执行sed

此时,.正确地抱怨它不知道如何处理it21-28命令: - )

我会说,根据经验,脚本的早期(工作)迭代只有it20行,有人添加(严重)hosts_update.sh和注释/空行。这是基于这样的事实,只有那些线是错误的。然而,这只是(知情的)猜测,并不影响答案。

最后,您可能想要调用生成的文件CREATE TABLE db1.test_table_file3( Col1 INT,Col2 SMALLINT,Col3 SMALLINT) COMMENT 'test_table_file2' ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' ,人们几乎肯定会认为它是一个shell脚本而不是主机文件它实际上是。