当我查询 NTP 守护进程的状态时,ntpdc -c sysinfo我得到以下输出:
system peer: 0.0.0.0
system peer mode: unspec
leap indicator: 11
stratum: 16
precision: -20
root distance: 0.00000 s
root dispersion: 12.77106 s
reference ID: [73.78.73.84]
reference time: 00000000.00000000 Thu, Feb 7 2036 7:28:16.000
system flags: auth monitor ntp kernel stats
jitter: 0.000000 s
stability: 0.000 ppm
broadcastdelay: 0.000000 s
authdelay: 0.000000 s
Run Code Online (Sandbox Code Playgroud)
这表示 NTP 同步失败。但是系统时间精确到 1 秒精度。当我在没有网络连接的情况下运行我的系统时,系统时间会偏离大约 10 秒。
这种行为表明系统有另一种同步时间的方式。我意识到还有systemd-timesyncd.service(配置文件位于/etc/systemd/timesyncd.conf)并timedatectl status给了我正确的时间:
Local time: Thu 2016-08-25 10:55:23 CEST …Run Code Online (Sandbox Code Playgroud) 我有一个文本文件,我想更换内部的所有空间[[,并]]用连字符(括号中从来没有嵌套,总是匹配)。下面是一个例子:
$ cat test.txt
abc [[foo]] xyz
abc [[foo bar]] xyz
abc [[foo bar baz]] xyz [[something else]]
Run Code Online (Sandbox Code Playgroud)
所以所需的输出是:
abc [[foo]] xyz
abc [[foo-bar]] xyz
abc [[foo-bar-baz]] xyz [[something-else]]
Run Code Online (Sandbox Code Playgroud)
我想我可以sed用来匹配括号内的字符串,然后使用该e标志sed再次运行结果以进行替换。然而,问题是不仅匹配的字符串被作为命令执行,而且整个模式空间(似乎是整行):
$ sed -E 's@(\[\[)(.+)(\]\])@sed -e "s/ /-/g" <<< "\1\2\3"@gpe' test.txt
abc sed -e "s/ /-/g" <<< "[[foo]]" xyz
sh: 1: Syntax error: redirection unexpected
abc sed -e "s/ /-/g" <<< "[[foo bar]]" xyz
sh: 1: Syntax error: redirection unexpected
abc …Run Code Online (Sandbox Code Playgroud)