小编gen*_*mx6的帖子

Powershell 函数返回一个数组而不是字符串

我正在导入一个 csv,我想向其中添加一列(结果基于前一列)

我的数据看起来像这样

host address,host prefix,site
10.1.1.0,24,400-01
Run Code Online (Sandbox Code Playgroud)

我想添加一个名为“子站点”的列

所以我写了这个模块,但问题是,实际的结束对象是一个数组而不是字符串

function site {
    Param($s)
    $s -match '(\d\d\d)'
     return $Matches[0]
}

$csv = import-csv $file | select-object *,@{Name='Sub Site';expression= {site $_.site}}
Run Code Online (Sandbox Code Playgroud)

如果我运行命令

PS C:\>$csv[0]

Host Address :10.1.1.0
host prefix  :24
site         :400-01
sub site     : {True,400}
Run Code Online (Sandbox Code Playgroud)

什么时候应该看起来像

PS C:\>$csv[0]

Host Address :10.1.1.0
host prefix  :24
site         :400-01
sub site     : 400
Run Code Online (Sandbox Code Playgroud)

编辑:我找到了解决方案,但现在的问题是为什么。

如果我将函数更改为$s -match "\d\d\d" |out-null 返回预期的 400

powershell

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

理解pack / unpack perl

所以我知道有一些库可以为我做到这一点,但我想学习打包/解包。

我的目标是让用户输入一个 ip 地址/子网掩码,然后验证它是否有效。

我想到的一种方法是“sprintf”并获得一个二进制值,比如 192.168.1.1 。这是一个不错的解决方案,但随后我需要预先添加所需数量的 0 使其成为“8 位”

pack可以将东西放入二进制格式时,这似乎是很多不必要的工作。我使用了N我找到的模板http://perldoc.perl.org/functions/pack.html 我的第一个目标是获取 IP 地址,将其转换为二进制,然后再将其转换回来。

$ip = "192.168.1.1";    
$bi = pack ("N*", $ip);    
print unpack("N*",$bi),"\n";
Run Code Online (Sandbox Code Playgroud)

我得到的输出192很明显我不明白这里发生了什么。

这里到底发生了什么?

perl pack

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

在Java中使用资源文件

我刚开始使用"Java资源文件",我有几个问题......

  1. 我希望将我的程序分发给其他人,我假设JAR文件不是最好的方法.我可能会通过"转换为exe"来实现这个好习惯吗?有什么限制?
  2. 如果我转换为exe,它会保留资源文件吗?
  3. 我其实只是想尝试使用资源文件.这个文件是一个文本文件,并只保存某些文件的用户目录,以便他们不需要在每次打开程序时设置它们.这是最好的方式吗?
  4. 你如何在代码本身中引用资源文件?

这就是我所做的.创建一个新的资源文件,因为我使用NetBeans,我可以在它看起来像这样导航器中的文件标签下看到它的位置:

  • Mainproject
    1. 建立
    2. 我的课
    3. 资源
      • directories.txt

这是我如何尝试访问它,但当我调试它回来null.

private void getPaths()//todo
{   

try
{
 InputStream is = getClass().getResourceAsStream("/resources/directories.txt");
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null) 
{
    System.out.println(line);
}
br.close();
isr.close();
is.close();
}
 catch(Exception e)
  {

    }
}
Run Code Online (Sandbox Code Playgroud)

java deployment resources file embedded-resource

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

Perl Regex问题

为什么这个perl REGEX不工作?我抓住了日期和用户名(日期工作正常),但它会抓住所有用户名然后当它击中bob.thomas并抓住整条线

码:

m/^(.+)\s-\sUser\s(.+)\s/;
print "$2------\n";
Run Code Online (Sandbox Code Playgroud)

样本数据:

Feb 17, 2013 12:18:02 AM - User plasma has logged on to client from host 
Feb 17, 2013 12:13:00 AM - User technician has logged on to client from host 
Feb 17, 2013 12:09:53 AM - User john.doe has logged on to client from host 
Feb 17, 2013 12:07:28 AM - User terry has logged on to client from host 
Feb 17, 2013 12:04:10 AM - User bob.thomas has been logged off from …
Run Code Online (Sandbox Code Playgroud)

regex perl

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

列出最后一行不包含模式的文件

我的文件的最后一行应该是“#”

如果我的 tail -n 1 * | grep -L "#"结果(standard input)显然是因为它正在通过管道传输。

希望有一个 grep 解决方案,而不是读取整个文件并只搜索最后一行。

unix bash grep

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

标签 统计

perl ×2

bash ×1

deployment ×1

embedded-resource ×1

file ×1

grep ×1

java ×1

pack ×1

powershell ×1

regex ×1

resources ×1

unix ×1