在OP 发表评论后,我发现/dev/stdout即使在禁用缓冲后也会给出 10 KiB 的块,但-事实并非如此。为什么是这样?man tar我在Nor中找不到任何与此相关的内容man stdout。
注意,/dev/stdout去00002800,不是000000a1。输出是正确的,除了用空字节填充之外。
> mkdir -p /tmp/747613
> cd /tmp/747613
> echo 747613 > file.txt
> tar czf /tmp/archive_tgz .
> hd /tmp/archive_tgz
00000000 1f 8b 08 00 00 00 00 00 00 03 ed d1 41 0a c2 30 |............A..0|
00000010 10 85 e1 ac 3d 45 4e 90 66 9a 49 72 9e 2e 22 08 |....=EN.f.Ir..".|
00000020 …Run Code Online (Sandbox Code Playgroud) 给定一个包含内容的文件input.txt:
xyMnZnMs76XHgsWJ
size: YN3hxFqFeUxXUMrQ
USPqYEnbquwFhUW7
vhJJduHZu25qHzTw
size: JaTDhQYQtLRWBLjj
uE5HGDAZN6DHU73Q
QxVPfQQaKTgR9LXQ
grnsm8bwSz5fJbQS size:
7CcuZxCHSJYhcdqg
ZuWadAaLWFwDwj5Z
Run Code Online (Sandbox Code Playgroud)
如何使用if (condition) {...} else {...}?
我尝试使用:
xyMnZnMs76XHgsWJ
size: YN3hxFqFeUxXUMrQ
USPqYEnbquwFhUW7
vhJJduHZu25qHzTw
size: JaTDhQYQtLRWBLjj
uE5HGDAZN6DHU73Q
QxVPfQQaKTgR9LXQ
grnsm8bwSz5fJbQS size:
7CcuZxCHSJYhcdqg
ZuWadAaLWFwDwj5Z
Run Code Online (Sandbox Code Playgroud)
但所有行都匹配(即使是不$1包含 的行"size"):
match: xyMnZnMs76XHgsWJ
match: size: YN3hxFqFeUxXUMrQ
match: USPqYEnbquwFhUW7
match: vhJJduHZu25qHzTw
match: size: JaTDhQYQtLRWBLjj
match: uE5HGDAZN6DHU73Q
match: QxVPfQQaKTgR9LXQ
match: grnsm8bwSz5fJbQS size:
match: 7CcuZxCHSJYhcdqg
match: ZuWadAaLWFwDwj5Z
Run Code Online (Sandbox Code Playgroud)
我期望输出是:
non-match: xyMnZnMs76XHgsWJ
match: size: YN3hxFqFeUxXUMrQ
non-match: USPqYEnbquwFhUW7
non-match: vhJJduHZu25qHzTw
match: size: JaTDhQYQtLRWBLjj
non-match: …Run Code Online (Sandbox Code Playgroud)