我的机器上有一些来自 Windows 系统的数据库转储。它们是文本文件。我正在使用 cygwin 来查看它们。这些似乎是纯文本文件;我用记事本和写字板等文本编辑器打开它们,它们看起来很清晰。但是,当我对它们运行 grep 时,它会说binary file foo.txt matches.
我注意到这些文件包含一些 asciiNUL字符,我认为它们是数据库转储中的工件。
那么是什么让 grep 认为这些文件是二进制的呢?的NUL性格吗?文件系统上有标志吗?我需要更改什么才能让 grep 显示匹配行?
我有一些 sql 转储,我正在查看它们之间的差异。diff显然可以向我展示两行之间的差异,但我让自己发疯,试图找到一长串逗号分隔值中的哪些值实际上是导致行不同的值。
我可以使用什么工具来指出某些文件中两行之间的确切字符差异?
是否有命令或标志可以从另一个文件克隆文件的用户/组所有权和权限?使权限和所有权与另一个文件完全相同?
我想聪明一点,将远程文件与本地文件进行比较,而无需先手动下载它。我可以通过以下方式获取远程文件的内容
ssh user@remote-host "cat path/file.name"
Run Code Online (Sandbox Code Playgroud)
然而,管道到 diff
ssh user@remote-host "cat path/file.name" | diff path/file.name
Run Code Online (Sandbox Code Playgroud)
给我这个:
diff: missing operand after `path/file.nae'
diff: Try `diff --help' for more information.
Run Code Online (Sandbox Code Playgroud)
我设置了 ssh 密钥,所以它不会提示我输入密码。对此有什么解决方法?
我为转换项目做了一个网站抓取。我想对那里的文件类型进行一些统计——例如,400 个.html文件、100 个.gif等。有什么简单的方法可以做到这一点?它必须是递归的。
编辑:使用 maxschelpzig 发布的脚本,由于我抓取的网站架构,我遇到了一些问题。一些文件的名称*.php?blah=blah&foo=bar带有各种参数,因此它认为它们都是唯一的。所以解决方案需要考虑*.php*到所有的类型都是相同的,可以这么说。
为了备份所有用户生成的文件,应该备份哪些目录?
从 vanilla debian 安装,我可以做足够多的事情来获得我想要的包。因此,如果我不想备份整个系统,那么用户生成的配置和数据文件都驻留在文件系统中的哪个位置?
有没有一种简单的方法可以回显文件,跳过第一行和最后一行?我正在考虑从headinto管道tail,但对于那些似乎我必须从一开始就知道总行数。我也在看split,但我也没有看到这样做的方法。
我想区分两组 mod_rewrite 规则。这组行大约有 90% 相同,但顺序如此不同以至于 diff 基本上说它们完全不同。
无论行号如何,如何查看两个文件之间哪些行真正不同?
我正在编写一个 PHP 脚本来解析一个大型文本文件,以便从中插入数据库。但是在我的主机上,文件太大,我达到了 PHP 的内存限制。
该文件大约有 16,000 行;我想把它分成四个单独的文件(一开始),看看我是否可以加载它们。
我可以得到的第一部分head -4000 file.txt。中间部分稍微有点棘手——我正在考虑将tail输出输送到head( tail -4001 file.txt | head -4000 > section2.txt),但还有另一种/更好的方法吗?
实际上我的逻辑很混乱——对于第二部分,我需要像tail -12001 file.txt | head - 4000,然后降低下一部分的tail论点。我已经混了!:P
是否有一些内置工具可以识别-x和--xxxx作为开关,而不是参数,或者您是否必须遍历所有输入变量,测试破折号,然后解析参数?
command-line ×4
shell ×4
diff ×3
backup ×1
chown ×1
debian ×1
filenames ×1
files ×1
filesystems ×1
getopts ×1
grep ×1
options ×1
permissions ×1
pipe ×1
shell-script ×1