在大文件中搜索字符串(无正则表达式等)less filename并less -b 1 filename退出或打印时,它无法分配内存。top显示在死掉之前(1 秒间隔),内存使用量减少了大约 5%。
我还可以使用什么其他工具来支持大文件?该文件只有 100 MB 的日志。
$ less -V
less 458 (GNU regular expressions)
Copyright (C) 1984-2012 Mark Nudelman
Run Code Online (Sandbox Code Playgroud)
操作系统详细信息:
$ ulimit -a
-t: cpu time (seconds) unlimited
-f: file size (blocks) unlimited
-d: data seg size (kbytes) unlimited
-s: stack size (kbytes) 8192
-c: core file size (blocks) 0
-m: resident set size (kbytes) unlimited
-u: processes 15988
-n: file descriptors 1024
-l: locked-in-memory size (kbytes) 64
-v: …Run Code Online (Sandbox Code Playgroud) 我目前正在查看所有不同的 Linux 发行版,但似乎找不到原始的 GNU/Linux 操作系统。显然有一个 GNU 系统将 GNU 项目与 Linux 内核结合在一起。我如何获得该副本或 Linux-libre 的副本?我不想要 Linux 发行版,我想看看原始操作系统的样子。
在我的OSX,我已经安装了GNUfind旁边默认BSDfind通过:brew install findutils。
据我了解,BSDfind遵循 POSIX 标准,而 GNU 将其设为可选(根据这篇文章),这在预期输出中造成了很多不一致。
例如:
$ find -L /etc -execdir echo {} ';' | head
etc
AFP.conf
afpovertcp.cfg
aliases
aliases.db
apache2
extra
httpd-autoindex.conf
httpd-dav.conf
httpd-default.conf
Run Code Online (Sandbox Code Playgroud)
$ gfind --version
find (GNU findutils) 4.4.2
$ POSIXLY_CORRECT=1 gfind -L /etc -execdir echo {} ';' | head
/etc
/etc/AFP.conf
/etc/afpovertcp.cfg
/etc/aliases
/etc/aliases.db
/etc/apache2
/etc/apache2/extra
/etc/apache2/extra/httpd-autoindex.conf
/etc/apache2/extra/httpd-dav.conf
/etc/apache2/extra/httpd-default.conf
gfind: `echo' terminated by signal 13
gfind: `echo' terminated …Run Code Online (Sandbox Code Playgroud) 我想通过每次运行特定sed行时将该数字递增 1 来更改字符串末尾的数字。
字符串如下所示:
server-port=25555
Run Code Online (Sandbox Code Playgroud)
我想我可以运行类似这sed条线的东西来做到这一点,但它不起作用。
sed -i 's/port=[0-9]{5}/int(&+1)/'
Run Code Online (Sandbox Code Playgroud) 我需要在 tar 存档中存储大量文件(> 100,000)并遇到错误:/bin/sh: /bin/tar: cannot execute [Arg list too long]。
UNIX Solaris tar 或 GNU tar 是否有限制?或者,这是 ZFS 问题吗?我正在使用 ZFS 运行 Solaris 11.3。
我想插入这个
cat <<EOF >> /etc/security/limits.conf
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
root soft nproc 65535
root hard nproc 65535
root soft nofile 65535
root hard nofile 65535
EOF
Run Code Online (Sandbox Code Playgroud)
进入文件的倒数第二行,在该# End of file行之前。
我知道我可以使用其他方法来插入这个语句而不使用EOF但对于视觉糖果我想保持这种格式以及可读性。
大多数程序用于-v启用详细模式。为什么 GNUxargs使用-t来启用冗长?
我正在编写一个 Bash 脚本,当使用 GNU sed 向文件插入行时,第一个新行作为文字 n 插入,而其余的作为新行插入。命令是这样的:
sed '5i\n\n\n' myfile
Run Code Online (Sandbox Code Playgroud)
输出是这样的:
n
Run Code Online (Sandbox Code Playgroud)
正如所见,输出中的第一行包含一个“n”,它应该没有,我对这种行为有什么遗漏?是否可以使 sed 仅插入带有 '\n' 的新行?谢谢你。
假设我写:
find . -regex "[0-9]{4}-[0-9]{2}-[0-9]{2}-(foo|bar).csv.gz" -printf "%f\n"
Run Code Online (Sandbox Code Playgroud)
这个命令在我看来应该可以工作。我已经遍历了各种 regextype 选项和各种 regex 格式,但是我无法让这种 regex 通过 find 工作。关于查找和正则表达式解析器,我在这里有什么简单的错误吗?
我正在使用cmp (GNU diffutils) 3.7并且对cmp -l/--verbose(“输出字节数和不同的字节值”)的输出感到困惑。
除了开头的几个字节外,我有两个几乎相同的文件:
$ ls -n x*
-rw-rw-r-- 1 1000 1000 345776 Jun 16 10:41 x-6.xz
-rw-rw-r-- 1 1000 1000 345776 Jun 16 10:04 x-9.xz
$ hexdump -C x-6.xz | head -3
00000000 fd 37 7a 58 5a 00 00 04 e6 d6 b4 46 02 00 21 01 |.7zXZ......F..!.|
00000010 16 00 00 00 74 2f e5 a3 e2 1c bb ef ff 5d 00 39 |....t/.......].9|
00000020 18 4a a7 22 …Run Code Online (Sandbox Code Playgroud)