小编Tam*_*ero的帖子

排序并保留具有最高值的唯一副本

我有一个如下所示的文件,我想保留在第三个字段上具有最高值的第一个和第二个字段之间的组合(带有箭头的那些,实际文件中不包含箭头)。

1   1   10
1   1   12        <- 
1   2   6         <-
1   3   4         <- 
2   4   32
2   4   37
2   4   39
2   4   40        <- 
2   45  12
2   45  15        <- 
3   3   12
3   3   15
3   3   17
3   3   19        <- 
3   15  4
3   15  9         <- 
4   17  25
4   17  28
4   17  32
4   17  36        <- 
4   18  4         <- 
Run Code Online (Sandbox Code Playgroud)

为了有这样的输出:

1   1   12
1   2   6 …
Run Code Online (Sandbox Code Playgroud)

unix sorting uniq

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

当我打开一个文件时会发生什么(RAM 和 ROM 很重要)

我想到这个问题是因为我想加快我的程序。

我从文件中读取数据,并像往常一样使用经典的:

FILE *fp;
fp=fopen("c:\\test.txt", "r");
Run Code Online (Sandbox Code Playgroud)

FILE 指针包含一个我不太理解的结构。

主要问题是:当我执行时,fopen我以某种方式将文件放入 RAM 中,或者每次我使用文件指针时,它都会从 HD 中读取文件?

操作系统:Linux Mint、gcc 编译器

c file-io fopen pointers memory-management

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

查找包含字符串unix的两个变量的差异

我如何使用diff代替变量而不是文件.

所有教程都有文件示例,但没有变量.

我希望它只打印差异.

例如:

TEXTA=abcdefghijklmnopqrstuvxyz; TEXTB=abcdefghijklmnopqrstuvxyr
Run Code Online (Sandbox Code Playgroud)

unix diff sdiff

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

如果模式,Awk只打印(0,1),但我想打印模式

我是AWK的新手,我觉得很棒,但我是个菜鸟.

我这样做:

awk '{print $1, $2 = /Pattern\w+/}' file
Run Code Online (Sandbox Code Playgroud)

这种数据:

3145 wfgd4  2345 sdf 55667 PatternAHF34
3148 fh345  34f  PatternRT4555 NNN NNN
3158 57ggt  3458f 58886 PatternYT334 56YY
3165 rf3d4  2t45 sdf 55667 Potato
3188 fhrf5  34b  PatternRT8855 N3 NN55
3218 g7ggt  34ggf 5116 PatternYYY34 56YT
Run Code Online (Sandbox Code Playgroud)

如您所见,列未对齐.

我想要的是:

3145 PatternAHF34
3148 PatternRT4555
3158 PatternYT334
3165 
3188 PatternRT8855
3218 PatternYYY34
Run Code Online (Sandbox Code Playgroud)

我得到了什么:

3145 1
3148 1
3158 1
3165 0
3188 1
3218 1
Run Code Online (Sandbox Code Playgroud)

提前谢谢大家

unix bash awk pattern-matching

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

string作为c中函数的参数

我正在创建一个函数,用于根据文本文件的行和字段编号从文本文件中检索整数.

代码如下所示,主要问题是我遇到函数参数问题.

我在它上面有一个错误标志return value;说:那value是不可取的

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/* define function */
int getlinefieldint(const char FILENAME[], int TARGETLINE, int TARGETFIELD, int LINESIZE);

int main ()
{
    static const char FILENAMEint[] = "resultdata1M";
    int linea=1000;
    int campo=2;
    int tamanolinea=128;
    int value;
    value=getlinefieldint(FILENAMEint,linea,campo,tamanolinea);
    printf("%d",value);

    return 0;
}

/* declare function */
int getlinefieldint(const char FILENAME[], int TARGETLINE, int TARGETFIELD, int LINESIZE)
{
    FILE *ARCHIVO;
    ARCHIVO = fopen ( FILENAME, "r" );       
    int C,QUERY_GENE_NUM;
    unsigned int NEWLINE_COUNT …
Run Code Online (Sandbox Code Playgroud)

c string function

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