我试图找到一种方法来选择文本文件的最后一行使用C(不是c ++或c#,只是C),我很难找到一种方法来做到这一点,如果有人可以帮助我解决这个问题我将非常感激,谢谢!(顺便说一下,我想要做的一个很好的例子,这将类似于尾巴-n 1将在bash中做什么)
如果我有一个字符串:Hi:my:name:is:lacrosse1991:我怎么能strtok用来检索is(换句话说第四个字段)?这将类似于你在bash中使用cut的方式,我会这样做cut -d ":" -f 4.如果这是一个错误的功能做这样的事情,请让我知道,任何帮助非常感谢,谢谢!(我刚刚开始自学C语言,如果这些是我要求的明显问题,我会提前道歉)
这是我将使用的剪切命令的示例
x=$(echo "$death" | cut -d ':' -f 4)
y=$(echo "$death" | cut -d ':' -f 5)
z=$(echo "$death" | cut -d ':' -f 6)
Run Code Online (Sandbox Code Playgroud) 我正在研究一些代码,在将文本进一步发送到程序之前过滤文本(此代码删除除了所有字母数字字符和下划线之外的所有内容),代码本身工作正常,除了我无法找到存储输出的方法如果我不得不猜测,这可能涉及将stdout从putchar保存到变量中,但是如果有人能指出我正确的方向,那么我无法在网上找到这么多信息.为此,我真的很感激,谢谢!
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main(void) {
int i;
char *p;
char stg[] = "hello";
for (p = &stg[0]; *p != '\0'; p++) {
if (isalnum(*p) || *p == '_') {
putchar (*p);
}
}
putchar ('\n');
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我目前正在使用一个代码示例,最初设计用于获取参数,然后在当前目录中搜索该参数,我试图通过替换"."来搜索另一个目录(/ dev/shm to exact). " 使用"/ dev/shm"但是当我搜索某些内容时代码没有任何内容*(请注意通配符).通配符搜索在当前目录中正常工作,所以我不认为这是外卡是问题,如果有人可以帮助我,虽然我真的很感激,谢谢!
#include <dirent.h>
#include <errno.h>
#include <stdio.h>
#include <string.h>
static void lookup(const char *arg)
{
DIR *dirp;
struct dirent *dp;
if ((dirp = opendir(".")) == NULL) {
perror("couldn't open '.'");
return;
}
do {
errno = 0;
if ((dp = readdir(dirp)) != NULL) {
if (strcmp(dp->d_name, arg) != 0)
continue;
(void) printf("found %s\n", arg);
(void) closedir(dirp);
return;
}
} while (dp != NULL);
if (errno != 0)
perror("error reading directory");
else
(void) printf("failed to …Run Code Online (Sandbox Code Playgroud) 有没有办法在发送到文件之前处理tee中的文本?
例如,如果程序输出以下行:
stack 11
stack 22
stack 33
serverfault
serverfault
stack 44
Run Code Online (Sandbox Code Playgroud)
我怎么能只将包含"stack"的行发送到文件,同时仍然通过stdout显示程序的原始输出?
我不确定是否可以使用发球台做到这一点,所以我愿意接受任何其他建议.
谢谢
我正在尝试运行以下命令
./someprogram | tee /dev/tty | sed 's/^.\{2\}//' > output_file
Run Code Online (Sandbox Code Playgroud)
但是当我去检查时,文件总是空白的.如果我> output_file从命令的末尾删除,我能够看到sed的输出没有任何问题.
有没有办法可以将此命令中sed的输出重定向到文件?
我想弄清楚如何转换一个字母数字
char num = "1";
Run Code Online (Sandbox Code Playgroud)
与整数相同的数字
char num = "1"; would be converted to int numc = "1";
Run Code Online (Sandbox Code Playgroud)
并且我能想到的唯一方法是手动执行一堆if语句,这看起来有点过分,所以我只是想知道是否有人知道更简单的方法来做到这一点?谢谢!
我想知道如何将文本文件读入数组,文本文件将包含以下内容:
string:string:string
string:string:string
string:string:string
etc
Run Code Online (Sandbox Code Playgroud)
(字符串:字符串:字符串在一行上)
我目前正在处理一个处理和组合几个不同文件的脚本,对于这一部分,我必须找到两个不同时间之间的差异,以确定某人工作的"总"时间.时间本身采用以下格式
34:18:00,40:26:00,06:08:00
Run Code Online (Sandbox Code Playgroud)
第一个是开始时间,第二个结束时间,第三个总时间.虽然这个显示正确,但有些条目需要进行双重检查和纠正(根据开始/结束时间总时间不正确).我在其他帖子中找到了几个不同的解决方案,但其中大多数还包括日期等等(大多数都使用awk),我对awk没有经验,所以我不确定如何从这些示例中删除日期部分.我也听说过我可以将时间转换为unix纪元时间,但我很好奇是否还有其他方法可以实现这一点,谢谢!
我目前正在处理一个处理csv文件的脚本,它所做的一件事是删除并记下文件中的重复行.我目前的方法是使用uniq -d一次运行uniq以显示所有重复项,然后再次运行uniq而不用任何选项来实际删除重复项.话虽如此,我想知道是否可以在一个动作中执行相同的功能,而不是必须运行uniq两次.我发现了一些使用awk删除重复项的不同示例,但据我所知,我无法找到任何显示重复项并同时删除它们的示例.如果有人可以为此提供建议或帮助,我会非常感激,谢谢!