相关疑难解决方法(0)

有没有办法就地修改文件?

我有一个相当大的文件(35Gb),我想就地过滤这个文件(即我没有足够的磁盘空间来存放另一个文件),特别是我想 grep 并忽略一些模式 - 有没有办法在不使用其他文件的情况下执行此操作?

假设我想过滤掉所有包含foo:例如...

grep large-files text-processing

62
推荐指数
8
解决办法
2万
查看次数

有没有办法让 perl -i 不破坏符号链接?

我的一个朋友指出,如果你这样做:

perl -pi.bak -e 's/foo/bar/' somefile
Run Code Online (Sandbox Code Playgroud)

当“somefile”实际上是一个符号链接时,perl 会按照文档所说的去做:

它通过重命名输入文件、按原始名称打开输出文件并选择该输出文件作为 print() 语句的默认文件来实现此目的。扩展名(如果提供)用于修改旧文件的名称以制作备份副本 [...]

这会导致一个新的符号链接“somefile.bak”指向未更改的真实文件,以及一个新的、已更改的常规文件“somefile”与更改。

在许多情况下,跟随符号链接将是所需的行为(即使它使 .bak 文件的正确位置不明确)。除了测试包装器中的符号链接并适当处理案例之外,是否有一种简单的方法可以做到这一点?

sed做同样的事情,这是值得的。)

command-line utilities perl text-processing symlink

13
推荐指数
1
解决办法
1157
查看次数