小编Ulr*_*arz的帖子

awk 检查文件是否存在

printf "2015-03-02|/home/user/.ssh/config\n2015-03-02|/home/user/Desktop/temp328\n" | awk -F\| 'if ( -f $2 )  { print $2}'
Run Code Online (Sandbox Code Playgroud)

或者

printf "2015-03-02|/home/user/.ssh/config\n2015-03-02|/home/user/Desktop/temp328\n" | awk -F\| '{if (system("test -f" $2)) print $2}'
Run Code Online (Sandbox Code Playgroud)

/home/user/.ssh/config\n2015-03-02 - 存在

/home/user/Desktop/temp328 - 已删除

我只想打印存在的文件,但此命令不起作用。

unix awk file

5
推荐指数
2
解决办法
8700
查看次数

如何在Plone站点外触发portal_quickinstaller.reinstallProducts表单?

我们正在运行一个Zope服务器,最终有大量的Plone(4)站点.有时会出现扩展产品更新,需要重新安装才能获取配置文件设置中的更改,例如新内容类型.

手动,这意味着点击每个Plone网站portal_quickinstaller,勾选产品,按更新.如果我们谈论几十个网站,这是不太可行的,所以我试图自动化这个.基本上到目前为止,我有以下生活作为Zope根目录中的脚本(Python):

a = context.restrictedTraverse('/')

p = a['Plone']
print p.getSiteManager()
qi = p.restrictedTraverse('portal_quickinstaller')
print qi
qi.reinstallProducts('LinguaPlone')
Run Code Online (Sandbox Code Playgroud)

(简化;实际上我有一个更长的列表而不是单个Plone实例,我可能想重新安装更长的产品列表.)这会失败,并带有以下内容:

  Module Products.CMFQuickInstallerTool.QuickInstallerTool, line 613, in uninstallProducts
  Module Products.CMFQuickInstallerTool.InstalledProduct, line 272, in uninstall
  Module Products.CMFQuickInstallerTool.InstalledProduct, line 351, in _cascadeRemove
AttributeError: 'BaseGlobalComponents' object has no attribute 'objectItems'
Run Code Online (Sandbox Code Playgroud)

从我到目前为止的调试尝试来看,BaseGlobalComponents是由Zope SiteManager返回的zope.component.getSiteManager.我如何说服快速安装程序选择正确的安装程序,即它所居住的Plone站点中的那个?

或者,我如何以一种对大型安装仍然模糊可行的方式自动重新安装产品?(ETA:我知道这不是你用cronjob自动做的事情,但我担心内部开发产品的更新是无法避免的.)

zope plone

4
推荐指数
1
解决办法
710
查看次数

ArrayIndexOutofBoundsException错误但不知道原因

所以我正在为"MiniString"创建一个类,它只是对象MiniString的实例方法,每个MiniString都有一个char []实例变量.在测试我的方法时,我无法找到我的substring()方法出错的地方.有两个子字符串方法,其中一个采用int参数,另一个采用两个int参数.我一直在一个int参数方法上得到错误.substring方法应该返回一个新的MiniString,它由int参数指定的目标Ministring中的位置和目标MiniString的末尾之间的字符组成.我在JUnit Tester中遇到的错误如下:

java.lang.ArrayOutofBoundsException:22
at MiniString.substring(MiniString.java:141)
at MiniString.substring(MiniString.java:159)
Run Code Online (Sandbox Code Playgroud)

这是我的MiniString对象的构造函数:

private char[] miniscule;

 MiniString(char[] array){
  int i = 0;
  miniscule = new char[array.length];
  while (i < array.length){
   miniscule[i] = array[i];
   i++;
  }
 }
 MiniString(String string){
  int i = 0;
  miniscule = new char[string.length()];
  while (i < string.length()){
   this.miniscule[i] = string.charAt(i);
   i++;
  }
 }
Run Code Online (Sandbox Code Playgroud)

这是两个substring()方法的代码:

public MiniString substring(int start, int end){
  int i = start; 
  if (end > start){
   char[] temp = new char[end - start];
   MiniString range = new MiniString(temp);
   while …
Run Code Online (Sandbox Code Playgroud)

java methods instance

0
推荐指数
1
解决办法
414
查看次数

标签 统计

awk ×1

file ×1

instance ×1

java ×1

methods ×1

plone ×1

unix ×1

zope ×1