我正在攻读考试,
有以下示例问题:
编写一个带有电话号码并更改前缀的sed命令 区域代码111和222仅限555.将括号中的所有区号更改为XXX。 提交为test.sed
因此我编码如下,
test.sed:
s/\(([0-9]{3})\)[[:space:]](111|222)-([0-9]{4})/(XXX) 555-\3/;s/\(([0-9]{3})\)[[:space:]]([0-9]{3})-([0-9]{4})/(XXX) \2-\3/
file.txt的:
(123) 123-2345
(123) 111-2345
(111) 222-2345
(222) 333-2345
111 123-3423
输出:
(XXX) 123-2345
(XXX) 555-2345
(XXX) 555-2345
(XXX) 111-2345
111 123-3423
我以前运行的命令:
sed -E -f test.sed file.txt
当我处理这个示例问题时,我想出了检查它的人如何检查这个问题。因为如果它是真正的考试,我只会提交test.sed文件,我不能告诉他/她他/她必须使用-E和-f标志来测试这个程序。但实际上,在考试中没有这样的机会说出来。
我只是不知道他们如何根据他们的观点来检查这个问题。 他们可能只需输入sed -f test.sed file.txt来运行它,但可能会错过像-E这样的标志。
有没有办法在不使用-E -f标志的情况下执行此类操作?我试过不使用那两个标志然后它只是不起作用。或者这个问题是否意味着我必须制作包含-E -f标志的独立.sed?但这可能吗?