我在 Bourne Shell 中玩得很开心,但我面临着一个关于条件的非常神秘的情况:
#! /bin/sh
a=1
b=2
c="0 kB/s"
if [ "$a" -eq 1 ] ; then echo "a = 1: true" ; else echo "a = 1: false" ; fi
if [ "$b" -gt 0 ] ; then echo "b > 0: true" ; else echo "b > 0: false" ; fi
if [ "$c" != "0 kB/s" ] ; then echo "c <> 0: true" ; else echo "c <> 0: false" ; fi
if [ "$a" …Run Code Online (Sandbox Code Playgroud) 我有一个(空格分隔的)输入文件,其中包含以下行:
field1=value1 field2="value 2" field3='value 3' field4="value '4'" ...
Run Code Online (Sandbox Code Playgroud)
字段数因行而异。为了正确处理这样的文件,我最好喜欢sed它并获得一些表格分隔的输出,例如:
field1 (tab) value1 (tab) field2 (tab) value 2 (tab) field3 (tab) value 3 (tab) field4 (tab) value '4'
Run Code Online (Sandbox Code Playgroud)
到目前为止,我所做的最远的事情是诸如sed "s/\([a-z][a-z]*\)=\(['\"]\{0,1\}\)\(..*?\)\2/\t\1\t\3/g"但离解决我的问题太远了。我的困难是正确处理值的分隔符(引号)的缺失或存在。对于优雅(或着想geekness),我坚持sed,但也将考虑一个awk替代方案。
在此先感谢您的帮助,
编辑:我很震惊地说,但@Jotne 是对的。
echo "field1=value1 field2=\"value 2\" field3='value 3' field4=\"value '4'\"" | sed "s/\([a-z][a-z]*\)=\(\([^ ][^ ]*\)\|'\([^'][^']*\)'\|\"\([^\"][^\"]*\)\"\)/\1\t\3\4\5\t/g"
Run Code Online (Sandbox Code Playgroud)
不起作用: field1=value1 field2="value 2" field3='value 3' field4="value '4'"`
尽管以下(背后的想法是解析audit.log文件)有效:
root@XXX:~# tail -n 2 /var/log/audit/audit.log
type=CRED_DISP msg=audit(1570385821.075:670): pid=32605 uid=0 auid=0 ses=399 msg='op=PAM:setcred …Run Code Online (Sandbox Code Playgroud) 我有以下数据,group每行都有一个递增的index,并包含 alimit和 a value:
CREATE TABLE items ("group" VARCHAR, index INTEGER, "limit" INTEGER, value INTEGER) ;
INSERT INTO items ("group", index, "limit", value) VALUES
('A', 1, 2, 1), ('A', 2, NULL, 3),
('B', 1, 3, 2), ('B', 2, NULL, 2), ('B', 3, 1, 3), ('B', 4, 2, 5),
('C', 1, 2, 3), ('C', 2, 2, 3), ('C', 3, NULL, 4), ('C', 4, 5, 5) ;
Run Code Online (Sandbox Code Playgroud)
group | index | limit …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 macOS (Mojave) 10.14.3 上全局安装 puppeteer
sudo su模式中):npm install -g puppeteer> puppeteer@1.12.2 install /usr/local/lib/node_modules/puppeteer
> node install.js
ERROR: Failed to download Chromium r624492! Set "PUPPETEER_SKIP_CHROMIUM_DOWNLOAD" env variable to skip download.
{ Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/puppeteer/.local-chromium'
-- ASYNC --
at BrowserFetcher.<anonymous> (/usr/local/lib/node_modules/puppeteer/lib/helper.js:108:27)
at Object.<anonymous> (/usr/local/lib/node_modules/puppeteer/install.js:64:16)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:743:3)
errno: -13,
code: 'EACCES',
syscall: 'mkdir', …Run Code Online (Sandbox Code Playgroud)