这应该很容易,但我似乎无法获得正确的语法。我有一个包含以下行的文件: host 'reg' 'PROC' 'admin' 'EIFEBJFFBOENGKGF'
host 未加引号,是唯一的常量。其他被引用的值我不知道它的确切值。我想要做的是用单引号替换第一个单词,在这种情况下,'reg' 用一个新值,并保持该行的其余部分不变。我尝试了多种变体:
回声“主机‘reg’‘NCO_PA’‘bsmadmin’‘EIFEBJFFBOENGKGF’”| sed "/host/s/['*']/'newvalue'/"
主机'newvalue'reg''NCO_PA''bsmadmin''EIFEBJFFBOENGKGF'
回声“主机‘reg’‘NCO_PA’‘bsmadmin’‘EIFEBJFFBOENGKGF’”| sed "/host/s/[\'.\']/\'newvalue\'/"
主机'newvalue'reg''NCO_PA''bsmadmin''EIFEBJFFBOENGKGF'
看来我只是让它用值替换第一个单引号。所以我的目标是改变
主机 'reg' 'PROC' 'admin' 'EIFEBJFFBOENGKGF'
至
主机'newvalue''PROC''admin''EIFEBJFFBOENGKGF'
第二个字段的值将是主机名,因此它可能包含对主机名有效的任何字符,reg.test.com、reg-1.test.com、boo.radley.com 等......单引号。
提前致谢。