小编mad*_*eke的帖子

选择文件夹中的第n个文件(使用sed)?

我试图在文件名匹配某个模式的文件夹中选择第n个文件:

香港专业教育学院尝试使用sed:例如,sed -n 3p/path/to/files/pattern .txt

但它似乎返回第一个匹配文件的第3行.

我也尝试过sed -n 3p ls /path/to/files/*pattern*.txt ,它也不起作用.

谢谢!

bash sed

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

如何将可变长度的行分配给perl中的变量?

我有一个我想要阅读的文件,每个位置的ID都有可变数量,如下所示:

loc1    id1    id4    id5   id9
loc2    id2 
loc3    id1    id11   id23
Run Code Online (Sandbox Code Playgroud)

我想存储如下locs(loc)= {属于该位置的所有ID}以后,当我读取另一个文件时,我可以做类似的事情

if (grep id, locs(loc)){do something}
Run Code Online (Sandbox Code Playgroud)

我尝试使用哈希来做到这一点,但这不起作用.我试过了:

open my $loclist, '<', $ARGV[0];
my %locs;
while (<$loclist>) {
my @loclist_rec = split;
my $loclist_loc = @rlist_rec[0];
$locs{$loclist_loc} = @loclist_rec;
}
Run Code Online (Sandbox Code Playgroud)

但这不起作用.我是perl的新手,仍然试图了解不同的数据类型.

有任何想法吗?非常感谢!

perl hash

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

变量传递-v在awk中不起作用

在shell脚本中我试图将变量传递给awk:

说我有

Y=113
Run Code Online (Sandbox Code Playgroud)

我想通过文件(bigfile),如果变量Y在一行上匹配,则打印几列.

如果我使用

awk  '{for(i=1;i<=NF;i++){if($i~/113/){print $1, $2, $3, $4}}}' < bigfile > x_113_list
Run Code Online (Sandbox Code Playgroud)

我得到了理想的结果

但是,如果我试试

Y=113
awk -v y="$Y" '{for(i=1;i<=NF;i++){if($i~/y/){print $1, $2, $3, $4}}}' < bigfile > x_"$Y"_list 
Run Code Online (Sandbox Code Playgroud)

我一无所获.(即使我在命令行上尝试也是这种情况)我做错了什么?

bash shell awk

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

标签 统计

bash ×2

awk ×1

hash ×1

perl ×1

sed ×1

shell ×1