小编lur*_*ker的帖子

尝试将文件夹中多个文件的内容附加到新文件

我正在尝试在 ruby​​ 中创建一个脚本,该脚本读取文件夹中的文件,并将它们合并到一个单独的文件中。

这就是我想出的

File.open('authorized_keys','a') do |mergedfile|
  @files = Dir.glob('/home/<user>/ruby_script/*.keys')
  for file in @files
    text = File.open(file, 'r').read
    text.each_line do |line|
      mergedfile << line
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

这个想法是,该脚本将为我们的开发人员从 github 下载公钥文件,将它们合并到authorized_keys 文件中,然后我们将其 scp 到我们的云服务器。

我遇到的问题是,当生成authorized_key 文件时,一些ssh 密钥位于新行,一些与其他密钥位于同一行。

我检查了下载的文件,每个密钥都在自己的行上

如何确保每个键都在自己的行上?

谢谢

ruby

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

从perl调用perl脚本

我有一个perl脚本,它接受如下两个参数,并根据参数调用适当的函数.我从bash调用这个脚本,但我想从perl调用它,是否可能?

/opt/sbin/script.pl --group="value1" --rule="value2";
Run Code Online (Sandbox Code Playgroud)

脚本也会以我想要阅读的返回值退出.

bash shell perl

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

为什么不显示"好"这个词?

当我运行此代码时,为什么不显示"好"这个词?存储在Array1和Array2的位置0的值对于两者都是1.

public class ArrayStuff {

    public static void main(String[] args) {

        double value = 1;

        Double[] Array1 = new Double[10];
        Array1 = new Double[] {1.0};

        Double[] Array2 = new Double[10];

        Array2[0] = value;

        int i = 0;

        System.out.println(Array1[0]);
        System.out.println(Array2[i]);

        if (Array1[0] == Array2[i])
        {

            System.out.println("good");

        }
     }

}
Run Code Online (Sandbox Code Playgroud)

java arrays

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

使用Lisp中的cons函数问题?

我正在学习Lisp,我必须编写一个函数,其返回值是一个包含给定输入的奇数整数(如果有)的列表.在代码我有这个:

(defun f3 (a)
   (cond
    ((null a) nil )
    ((and (numberp (car a)) (oddp (car a))) (cons (car a) (f3 (cdr a))))
    (T (f3 (cdr a)))
   ) ; end cond
)
Run Code Online (Sandbox Code Playgroud)

我原本想使用append函数,但我一直都会遇到错误.

我建议使用cons功能.当我这样做时,我的功能开始工作(代码在上面).我原来有这个:

(defun f3 (a)
    (cond
       ((null a) ())
       ((and (numberp (car a)) (oddp (car a))) (append (f3 (cdr a)) (car a))))
       (T (append () (f3 (cdr a))))
    )
)
Run Code Online (Sandbox Code Playgroud)

但不断出错.例如,如果我调用(f3 '(1 2 3))它会说"错误3不是类型列表".所以,我的问题是为什么利弊在这里起作用,为什么追加不起作用?利润如何运作?提前致谢.

lisp append

0
推荐指数
2
解决办法
102
查看次数

我认为我的C++教科书给了我一些关于switch语句的错误

#include <iostream>

using namespace std;

int main()
{

    int grade;
    int aCount;
    int bCount;
    int cCount;
    int dCount;
    int fCount;

    cout << "Enter the letter grades." << endl
        << "Enter the EOF character to end input." << endl;

    while ((grade = cin.get()) != EOF)
    {

        switch (grade)
        {
        case 'A':
        case 'a':
            aCount++;
            break;

        case 'B':
        case 'b':
            bCount++;
            break;

        case 'C':
        case 'c':
            cCount++;
            break;

        case 'D':
        case 'd':
            dCount++;
            break;

        case 'F':
        case 'f':
            fCount++;
            break;

        case '\n': …
Run Code Online (Sandbox Code Playgroud)

c++ visual-studio-2010

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

分段故障(核心转储) - 结构;

所以我有以下问题:

我有这个 struct ListAut

struct ListAut{
    char* biggestn;
    int sizeof_biggestn;
    int total_len;
    struct node* avl;
};
Run Code Online (Sandbox Code Playgroud)

typedef是因为它如下:

typedef struct ListAut *IndexOfAuts;

IndexOfAuts *newIndexOfAuts()
{
    int i;
    IndexOfAuts *ioa = malloc(27 * sizeof(struct ListAut));

    for (i = 0; i < 27; i++)
    {
        ioa[i]->biggestn = "";
        ioa[i]->sizeof_biggestn = 0;
        ioa[i]->total_len = 0;
        ioa[i]->avl = NULL;
    }
    return ioa;
}

void insertName(IndexOfAuts * ioa, char *nome)
{
    char *aux = malloc(sizeof(nome));

    aux = trim(nome);
    int index = getIndexOfLetter(aux);

    if (nameLen(aux) …
Run Code Online (Sandbox Code Playgroud)

c

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

while循环抛出错误javascript

我正在使用while循环在元素中附加事件.但是事件成功添加但该函数也在控制台上抛出错误.如果我使用预增量,那么它的工作正常.我只是想知道后增量有什么问题.小提琴

var elements= document.getElementsByTagName('*'), i;
i=0;

while(elements[i++]){
    if(elements[i].className=='c') {
        elements[i].addEventListener('click',function() {
            alert(this.className)
        })
    }
}
Run Code Online (Sandbox Code Playgroud)

javascript

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

在LISP中创建一个新的排序

我想在LISP中定义一个新的排序方法,坚持这个公式.

2> 3> 4> 5> 6> 7> 8> 9> 10> J> Q> K> A.

正如扑克所见.

所以我举例说:

(mysortmethod '((3 H)(2 H)(J D)(8 C)(5 C)))
Run Code Online (Sandbox Code Playgroud)

我会得到这个:

((2 H)(3 H)(5 C)(8 C)(J D))
Run Code Online (Sandbox Code Playgroud)

作为排序列表,其中忽略每个括号中的第二个元素.

我完全不知道怎么做.有人能指出我正确的方向或者向我解释一个方法吗?

sorting common-lisp

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

使用递归方法反转并打印数组

下面的方法工作正常,但我找不到使用相同方法打印反转数组的方法.我尝试了 - 每个循环但它打印三个数组而不仅仅是一个.例如,如果输入:

大小5,开始= 1,结束= 5,arr [] = {1,2,3,4,5}

输出:

543215432154321

应该是正确的输出

54321

这是代码:

static void reverse(int[] arr, int start, int end) {
    if (start < end) {
        int temp = arr[start];
        arr[start] = arr[end];
        arr[end] = temp;
        reverse(arr, start + 1, end - 1);       
    }   

    for (int pr : arr) {
        System.out.print(pr);
    }
}
Run Code Online (Sandbox Code Playgroud)

java arrays recursion reverse

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

如何对Prolog事实加以限制?

这是事实:

address(host1, '10.0.0.1').
address(host2, '10.0.0.2').
Run Code Online (Sandbox Code Playgroud)

我可以查询一个事实:

?- address(host1, X).
X = '10.0.0.1'.
Run Code Online (Sandbox Code Playgroud)

我是Prolog的新手,但我习惯了关系数据库.在SQL数据库中,我对数据进行约束以防止错误.如果我想确保所有地址都在A类网络10.0.0.0/8中,我可以对表列进行约束:

create table hosts (
  name    text,
  address text check (address like '10.%')
);
Run Code Online (Sandbox Code Playgroud)

我如何在Prolog中做同样的事情来防止错误的事实?

prolog

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