小编ric*_*ick的帖子

使用sed/awk打印具有匹配模式或其他匹配模式的行

我需要使用在匹配模式不同模式的文件中打印行.我觉得这是一件容易的事,但我似乎无法找到答案.有任何想法吗?

bash awk sed

21
推荐指数
4
解决办法
7万
查看次数

根据表中的行数调整NSTableView或NSScrollView的大小

我有一个基于视图的NSTableView,它嵌入在NSScrollView中.它具有x个像素高的自定义单元格.NSScrollView与它是子视图的面板大小相同.我想调整整个NSTableView的大小,具体取决于表中的行数.

除了调整大小外,一切正常.在IB中手动调整滚动视图的大小似乎具有所需的效果,但NSSrollView似乎没有用于调整其视图大小的类方法(如NSView具有setFrame).我应该调整scollview,tableview,还是其他什么?NSScrollView是否有我缺少的setFrame方法或类似方法?

谢谢.

cocoa objective-c nstableview nsscrollview

9
推荐指数
1
解决办法
3621
查看次数

sudo for bash脚本中的单个命令

这可能是一个愚蠢的问题.

我有一个脚本,我想在Mac OS X和我使用的Linux机箱之间移植.在OS X中,脚本中的命令需要sudo,在Linux框中,它不需要.

简而言之,如何在脚本中运行一个命令sudo,然后删除脚本其余部分的提升权限?

我试过用

su -
Run Code Online (Sandbox Code Playgroud)

su -c
Run Code Online (Sandbox Code Playgroud)

但他们似乎都错了.(他们说"抱歉"并继续前进,我认为因为它试图运行rootroot没有密码).

我知道必须有一个愚蠢而简单的方法来做到这一点,每个人都建议什么?

bash scripting sudo

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

ruby在2个字符串之间打印选定的文本行

我试图在ruby中的两个字符串之间获取一组文本,我似乎无法获得正确的方法或使用正确的正则表达式.

文本:

<html>
<body>

<!-- begin posts --> 

<h1>all kinds of html<h1>
<p> blah blah </p>
<p> i've been working on this forever </p>

<!-- end posts --> 

</html>
</body>
Run Code Online (Sandbox Code Playgroud)

我只是想从得到的一切<!-- begin posts --><!-- end posts -->,包容性,并保存那个文本块中的文本文件.

我想出了如何在开头打印线:

File.open("index.html").each_line do |line|
body.each {|line| puts line if line =~ /<!-- begin/}

但不是后面的行和直到最后一个字符串.

我在这里有一个rubular http://rubular.com/r/0W9QDpMGkM,我无法找到任何东西.

提前谢谢大家.

ruby regex

6
推荐指数
1
解决办法
4430
查看次数

在文本文件中读入行,排序,然后覆盖文件

我正在尝试编写一个go函数,它将在文本文件中读取行,对它们进行排序(按字母顺序排列),并将它们覆盖回文件.现在,我能够基本上模拟cat,但我似乎无法操纵read_line中元素的内容.

func sort() {

    ff, _ := os.OpenFile(file, os.O_RDWR, 0666)
    f := bufio.NewReader(ff)
    for {
        read_line, _ := f.ReadString('\n')
        fmt.Print(read_line)
        if read_line == "" {
            break
        }
    }
    ff.Close()
}
Run Code Online (Sandbox Code Playgroud)

当我使用ReadString时,我如何将每一行存储到切片中(或者有更好的方法来存储它们以便我可以操作它们)?然后我会以类似于这样的方式使用sort包:

sorted := sort.Strings(lines) 
Run Code Online (Sandbox Code Playgroud)

然后,写入文件,我使用类似于下面的东西,虽然我还没有列入,因为我还没有得到"排序"的工作:

io.WriteString(ff, (lines + "\n"))
Run Code Online (Sandbox Code Playgroud)

提前感谢您的任何建议!

sorting file lines go

6
推荐指数
1
解决办法
4571
查看次数

递归diff非常慢 - 检查目录的内容

嘿伙计们,我在两个目录上运行差异,递归地,有几个选项.目录有点大,但是,我试图只是看到文件夹内容的差异,而不是文件之间的差异,使用-q选项(我使用这个吗?)

我也尝试过rsync干运行,这似乎也需要同样的时间.输出通过sed,我试过没有,它似乎没有任何影响.我也忽略隐藏文件.我想我可能错误地使用diff -q来比较2个目录的内容.

我使用了另一个提示的代码块来计算这些目录中的一个是多久(1个目录,14个子目录),花了88分钟.然而,每个文件都是一个30分钟的电视节目,所以如果差异比较这些文件,这是有道理的,但我认为-q会导致这种情况不会发生?

另外,一个目录安装在AFP上,一个是火线连接的外部驱动器.这没关系,因为我在本地复制了两个目录,并且差异占用了相同的时间.我有一个解决方案 - 我在两个目录上运行ls -1并对输出进行差异化 - 但为什么差异需要这么长时间才能运行?

这是代码; 有什么建议?

#!/bin/bash

before="$(date +%s)"

diff -r -x '.*' /Volumes/directory1/ /Volumes/directory2/ | sed 's/^.\{24\}//g' > /Volumes/stuff.txt
diff -r -x '.*' /Volumes/directory3/ /Volumes/directory4/ | sed 's/^.\{24\}//g' > /Volumes/stuff.txt
diff -r -x '.*' /Volumes/directory5/ /Volumes/directory6/ | sed 's/^.\{24\}//g' > /Volumes/stuff.txt
diff -r -x '.*' /Volumes/directory7/ /Volumes/directory8/ | sed 's/^.\{24\}//g' > /Volumes/stuff.txt
diff -r -x '.*' /Volumes/directory9/ /Volumes/directory10/ | sed 's/^.\{24\}//g' > /Volumes/stuff.txt
diff -r -x '.*' /Volumes/directory11/ /Volumes/directory12/ | sed 's/^.\{24\}//g' > …
Run Code Online (Sandbox Code Playgroud)

bash diff rsync

5
推荐指数
1
解决办法
4441
查看次数

去编译错误:未定义的变量

编程新手,甚至更新。使用小型go程序遇到麻烦-无法编译未定义的变量错误。代码:

package main

import (
  "fmt"
  "io"
  "os"
)

const file = "readfile.txt" 
var s string

func lookup(string) (string, string, string) {
    artist := s
    album := s
    year := s

    return artist, album, year
}

func enterdisk() (string, string, string) {
  var artist string
    var album string
    var year string

    println("enter artist:")
  fmt.Scanf("%s", &artist)

    println("enter album:")
  fmt.Scanf("%s", &album)

    println("enter year:")
  fmt.Scanf("%s", &year)

    return artist, album, year
}

func main() {

  println("enter UPC or [manual] to enter information manually:")
  fmt.Scanf("%s", …
Run Code Online (Sandbox Code Playgroud)

variables go

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

使用FMDB从SQLite数据库中删除行

我觉得我已经阅读了FMDB的文档一百万次.我不知道为什么这个代码不起作用 - 我已经尝试了executeUpdate方法和executeMethodWithFormat及其相应的格式,似乎都不起作用._dbArray是一个dictionarys数组.这些行返回正确的值 - 如果我复制并粘贴结果并在终端中运行查询,它将删除记录正常.我错过了明显的东西吗?

- (IBAction)deleteDbEntry:(id)sender {

    // get selected row
    NSInteger row = [_dataTable selectedRow];

    // get the entry number
    NSString *idToDelete = [[_dbArray objectAtIndex:row] valueForKey:@"entryColumn"];

    // open DB for writing
    if (![db open]) {
        [db open];
    }

    [db executeUpdate:@"DELETE FROM tbl1 WHERE entry = ?", idToDelete];

    // close DB
    if ([db open]) {
        [db close];
    }

    [_dataTable reloadData];

    return;
}
Run Code Online (Sandbox Code Playgroud)

更新:我已经采纳了你的建议,它仍然没有工作,我不知道为什么.数据库的打开和关闭现在正在其他地方发生(谢谢@ccgus),我正在将字符串转换为NSNumber(感谢@bryanmac).在NSLog(@"myNumber is %@", myNumber);调用返回正确的号码,我可以证实,删除没有发生.的NSLog(@"Error %d: %@", [db lastErrorCode], [db lastErrorMessage]);是报告没有任何错误(Error 0: (null) …

sqlite cocoa objective-c fmdb

3
推荐指数
1
解决办法
1万
查看次数

关于菜单栏应用中的面板在激活时不是最前面的

我有一个住在菜单栏中的应用程序,没有主菜单或停靠图标.我有一个触发按钮[NSApp orderFrontStandardAboutPanel:sender];.单击该按钮时,有时,"关于"面板将变为最前面.但是,其他时候,"关于"面板会打开,但在其他正在运行的应用程序窗口后面(要清楚,在其他应用程序的窗口后面,而不是在菜单栏的弹出窗口后面).我甚至不确定从哪里开始调试这个 - 任何建议?

谢谢.

cocoa nsapplication nspanel

2
推荐指数
1
解决办法
459
查看次数

ruby正则表达式,一切但是括号和括号中的内容

我正在尝试编写一个正则表达式,用于生成不在括号或括号中的字符串中的内容.括号总是一年,括号可以包含任何普通字符,大写和小写.我通过查找括号和括号然后[^\regex]来逃避它(这是对的吗?)

这是字符串:

s = 'Some words (1999) [THINGS]
Run Code Online (Sandbox Code Playgroud)

和正则表达式:

/[^(\(\d{4}\))|\[.*\]]/
Run Code Online (Sandbox Code Playgroud)

但这包括括号内的字符见(http://rubular.com/r/bbpcnnGgCI)

一切正常,直到添加[^\regex]

例如,这可以得到(1999):

>> puts s.match(/\(\d{4}\)/)
(1999)  
Run Code Online (Sandbox Code Playgroud)

以及括号中的内容:

>> puts s.match(/\[.*\]/)
[THINGS]
Run Code Online (Sandbox Code Playgroud)

但是使用|将它们放在一起 为"或":

>> puts s.match(/\(\d{4}\)|\[.*\]/)
(1999)
Run Code Online (Sandbox Code Playgroud)

...它只是匹配括号及其内容.

这里发生了什么?

我在这做错了什么?

ruby regex

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

为什么Perl不在这里做数学?

我有一个哈希引用数组:

my @price = (
    {
        id    => '1',
        label => 5.00
    },
    {
        id    => '2',
        label => 7.50
    },
);
Run Code Online (Sandbox Code Playgroud)

我还有2个变量整数,$ diff和$ last.当我尝试迭代数组以将"标签"乘以$diff/$last:

foreach (@price) {
    print "(($diff/$last)*$_->{label})\t";
}
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

((12/30)*5.00)
((12/30)*7.50)
Run Code Online (Sandbox Code Playgroud)

我假设它没有倍增,因为我有两个整数和一个哈希引用.如果这是正确的,我如何使哈希引用成为整数?如何强制Perl实际进行数学运算并打印最终产品?

arrays perl hash

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