我需要删除给定文件夹下的所有内容(文件和文件夹).问题是文件夹里面有数百万个文件和文件夹.所以我不想一次性加载所有文件名.
逻辑应该是这样的:
我正在尝试这样的事情:
sub main(){
my ($rc, $help, $debug, $root) = ();
$rc = GetOptions ( "HELP" => \$help,
"DEBUG" => \$debug,
"ROOT=s" => \$root);
die "Bad command line options\n$usage\n" unless ($rc);
if ($help) { print $usage; exit (0); }
if ($debug) {
warn "\nProceeding to execution with following parameters: \n";
warn "===============================================================\n";
warn "ROOT = $root\n";
} # write debug information to STDERR
print "\n Starting to delete...\n";
die "usage: $0 dir …
Run Code Online (Sandbox Code Playgroud) 使用命令行工具,我试图找到除127.0.0.1以外的任何IP地址,并替换为新的IP.我试过用sed
:
sed 's/\([0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}\)\(?!127.0.0.1\)/'$ip'/g' file
Run Code Online (Sandbox Code Playgroud)
你能帮帮我吗?
在阅读有关在Ruby中重新定义方法是多么容易时,我遇到了以下内容:
class Array
alias :old_length :length
def length
old_length / 2
end
end
puts [1, 2, 3].length
Run Code Online (Sandbox Code Playgroud)
当然,这是一个坏主意,但它说得好.但困扰我,我们之间进行切换:length
,并length
与:old_length
和old_length
那么容易.所以我这样试了:
class Array
alias old_length length
def length
old_length / 2
end
end
puts [1, 2, 3].length
Run Code Online (Sandbox Code Playgroud)
它工作得很好 - 显然就像第一个版本.我觉得有一些明显的东西让我失踪,但我不确定它是什么.
所以,在nuthsell,为什么:name
和name
在这些情况下可以互换?
我正在尝试使用Ruby在某些图像上执行以下bash命令:
class Pingcrush
def initialize
Dir.foreach('drawable') do |item|
next if item == '.' or item == '..'
# do work on real items
if item.end_with?(".png") then
%x["wine pngcrush.exe -brute drawable/#{item} new/#{item}"]
end
end
end
end
Pingcrush.new
Run Code Online (Sandbox Code Playgroud)
我在该目录的父既drawable
和new
,但是,当我试图运行该脚本,我总是得到同样的错误:
sh: wine pngcrush.exe -brute drawable/feed_cl.png new/feed_cl.png: not found
Run Code Online (Sandbox Code Playgroud)
为什么会这样?我尝试切换我在Ruby中调用的路径,似乎无法使其工作.
我正在开展一个网络项目.我想在ruby中实现相同的功能.我知道像merb,sinatra这样的ruby框架.我想知道哪个是最适合使用ruby开发基于Web的应用程序的框架?
以下哪些代码更贵?
x = my_array.inject {|sum,i| int+=i }
Run Code Online (Sandbox Code Playgroud)
要么
x = eval(my_array.join('+'))
Run Code Online (Sandbox Code Playgroud) 我有一个名为ama.txt的文件,文件内容如下:
name age hobby sex
amit 45 music male
sumit 35 cricket female
Run Code Online (Sandbox Code Playgroud)
现在我可以像这样打开文件:
File.open("ama.txt").each do
end
Run Code Online (Sandbox Code Playgroud)
如何修改hobby
文件列?
我有像这样的文件中的数据......
405,,,405,15.4,0,04/21/12 14:13:29
402,,,402,15.4,0,04/21/12 14:13:37
404,,,404,15.5,0,2012/04/21 14:14:05
404,,,404,15.4,0,2012/04/21 14:14:11
403,,,403,15.4,0,2012/04/21 14:14:17
Run Code Online (Sandbox Code Playgroud)
我想将最后一列转换为YYYY/MM/DD hh:mm:ss格式的日期.
有些行已经采用这种格式,因此应该忽略它们.
我尝试了以下awk命令,但它似乎很慢,有时会抛出错误
awk -F ',' '{ ("date -d \""$7"\" \"+%Y/%m/%d %T\"") | getline $7; print }' MyFile
Run Code Online (Sandbox Code Playgroud)
这不必在awk中完成.我在标准的Debian命令行中有任何实用程序.
对于这行代码:
text = totaltext2.reject {|sentence| nilfacs.any?{|fac| sentence =~ /#{fac}/i}}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
1.)"角色等级'''没有逃避"
和
2.)"字符类过早结束"后跟:'in'每个"','in"任何?"','in"reject"','in'
谁能告诉我需要改变什么和/或问题是什么?我无法弄清楚错误是什么.
我目前正在努力解决这个错误.我正在编写一个shell模拟器,使用fork()来执行使用execvp();的命令.几乎我尝试解析到我的shell的每个命令都工作得很好,除了没有参数的ls.如果我尝试执行ls -lah,一切正常,但是一个简单的ls不会,收到以下错误:
ls: fts_open: No such file or directory
Run Code Online (Sandbox Code Playgroud)
这是我的代码片段:(只是必不可少的)
pid = fork();
if (pid==0)
{
puts("CHILD");
puts(args[0]);
puts(args[1]);
printf("%d\n", strlen(args[1]));
args[2] = NULL;
execvp(args[0], args);
}
else wait(NULL);
puts("BACK TO PARENT");
}
Run Code Online (Sandbox Code Playgroud)
这是ls的输出:
ls
CHILD
ls
0
ls: fts_open: No such file or directory
BACK TO PARENT
Run Code Online (Sandbox Code Playgroud)
如你所见,args [0]包含ls,args [1]为空,因为没有参数,args [1]的长度为0,但我不断收到错误.
有什么想法吗?
编辑:
感谢Jonathan Leffler找到它:(同样,它似乎只是Mac上的一个问题)
关键是args [1]实际上并不是空的,因此,操作系统会尝试打开''文件,显然,该文件不存在,并且看起来不能创建,因为它不是真是个名字.
所以,这就是我所做的:检查args的len [1].如果为0,则将其设置为NULL.(只是释放内存并没有真正帮助)
pid = fork();
if (pid==0)
{
puts("CHILD");
puts(args[0]);
puts(args[1]);
if (strlen(args[1]) == 0)
args[1] = 0;
args[2] = NULL;
execvp(args[0], …
Run Code Online (Sandbox Code Playgroud)