我有一本 PDF 格式的书,但我无法使用sed. 我无法真正使用 LibreOffice 来编辑它,因为它是一个 300 页的文档,其中包含大量图像,而且我的电脑在打开过程中会崩溃。我所需要做的就是仅在一个位置更改一两个字符(例如,将“+2”更改为“+3”,其中“+2”在整本书中仅出现一次),因此解决方案应该是基本的。
我解压缩它,然后尝试在其上使用 sed,sed没有改变任何内容,尽管echo $?会返回0.
pdftk file.pdf output uncompressed_file.pdf uncompress
sed -i 's/foo/bar/g' uncompressed_file.pdf
pdftk uncompressed_file.pdf output corrected_file.pdf compress
Run Code Online (Sandbox Code Playgroud)
这段代码与另一个文件一起工作,我怀疑某些 PDF 文件阻止编辑,我正在寻找一种方法来绕过它。
创建一个所有成员(属性,函数)都是静态的类的(目标)缺点是什么?特别是与命名空间的使用相比?或者您更愿意创建全局变量/函数?
我喜欢创建静态属性,因为我发现它们"更整洁".(我确切地知道它们来自哪里等等)我对命名空间不是很熟悉.而且我不舒服,在所有的全局变量,因为我不是很熟悉C语言的关键字,例如extern和static.
此外,如果我们考虑班级
class MyStaticClass
{
private:
static int x;
static double y;
public:
static float s;
static double weatherForecast(unsigned int, char);
};
Run Code Online (Sandbox Code Playgroud)
和命名空间
namespace MyNamespace
{
int x;
double y;
float s;
double weatherForecast(unsigned int, char);
}
Run Code Online (Sandbox Code Playgroud)
在通话MyStaticClass::weatherForecast和通话之间是否存在差异(性能方面)MyNamespace::weatherForecast?
阅读/写作MyStaticClass::s和阅读/写作之间是否存在差异(表现方面)MyNamespace::s?
如果使用类而不是主要类型,上述问题的任何答案都会改变吗?