今天,我为Linux编写了我的第一个Dart命令行实用程序。它应该处理通过stdin传递给它的文件。最终,每一行都会被处理。但我觉得我使用了一种非常低效的方式来读取文件,所以我希望能得到一些提示。以下是代码的最小示例: import 'dart:io';
void main(){
var line = stdin.readLineSync();
for (;line != null; line = stdin.readLineSync() ) {
//do stuff with line or simply
stdout.wr
假设在linux中有一个文件,它的行用空格分隔。
例如:
This is linux file
This is linux text
This is linux file 1
This is linux file 3
现在我只想打印那些在文件行中有第5列的行。在本例中,我的输出应该是第3行和第4行(其中1和3作为第5列)
做这件事最好的方法是什么?
我正在尝试学习输入/输出是如何工作的,并且对教科书中的一些基本代码感到好奇:
#include <stdio.h>
/* copy input to output; 1st version */
int main()
{
int c;
c = getchar();
while (c != EOF) {
putchar(c);
c = getchar();
}
}
在我使用gcc将这段代码转换为可执行文件后,它运行得非常好。然而,在可执行文件中,每当我按下"enter“时,我的所有输入都会被发送出去,因此也会打印到下一行作为输出。我如何设置才能获得我想要退
我对Linux非常陌生,我已经发现了很多关于如何在文件中进行字符计数的有用信息,但是Linux/终端中是否有一种方法可以根据每一行特定字符发生的次数对文本文件进行排序呢?
例如:
baseball
aardvark
a man a plan a canal panama
cat
bat
bill
按字母"a“的出现次数排序:
a man a plan a canal panama
aardvark
baseball
cat
bat
bill
对于"cat“和"bat”一次出现"a“的情况,我不关心等号行的顺序是否被颠倒,只是对按字符频率排列的一般行感兴趣。
我有这个表格的输入文件:
Some text here
Another text here
Something else here
现在,我想编写一个linux脚本,每次从输入文件中选择一行,并创建一个单独的文件,该文件只存储接收到的行。在此之后,我想将这个文件传递给一个程序(我只有二进制文件)。是否有可能编写这样一个linux脚本。我已经习惯了用C++编程,我知道这是可能的。但我想知道,使用linux脚本是否可能出现类似的情况。基本上,我打算做以下工作:
read inputfile.txt line by line
store line read in inputFil
在linux中,我们可以运行sort命令来对文件内容进行排序,但在我的示例中,我有以下文件(THANKS.txt):
These people have contributed to OSN Envoy. We always try to keep this list updated and correct.
If you notice that your name is not listed here, then feel free to contact us.
Ar Rakin
Peter Williamson
David Brook
Bill Natt
此文件包含软件项目贡献者的列表
我有一个由windows系统生成的CSV文件。然后将该文件移动到linux。linux环境是NAME="Red Hat Enterprise Linux Server".VERSION="7.3 (Maipo)".ID="rhel“。
当我使用vi编辑器时,所有的字符都是可见的。例如,给出了一行:"Sarah--bitte nicht löschen“。
但是当我猫文件时,我得到类似于"Sarah--bitte nicht l▒schen“之类的东西。
此文件由数据存储应用程序使用,并且此unicode字符为"?“在数据存储中。由
我有一个奇怪的问题,这是我在处理批处理文件的30年中从未见过的。给定一个虚拟的CMD文件,如下所示:
@echo off
:somelabel
echo Testing something
dir /b
echo All is well.
:end
这主要是按预期运行的,但有时会得到输出,如'ing something' is not recognized as an internal or external command, operable program or batch file.。
这显然是一个事件,它已经切断了一点行,并试图执行其余的。当这种情况发生时,它总是‘随机
示例
档案1:
This Dog
This Cat
This Duck
This Horse
档案2:
...
Animal Name
...
AniMal Type
...
AnIMal Class
...
animal Brand
...
我想做以下几点:
添加文件1的第一行(这只狗)刚好低于第一次出现的“动物”(忽略情况)
添加文件1第2行(此猫)刚好低于第二次出现的“动物”(忽略情况)
添加文件1第3行(这只鸭子)正好低于第三次出现的“动物”(忽略情况)
添加文件1第4行(这匹马)刚好低于第4次出现的“动物”(忽略情况)
..。
因此,一般来说,文件1的第n行应该添加在第n次出现
我希望每次按下按钮时都能从txt文件中读取四行,直到没有更多的行要读取为止。当我第一次按下按钮时,会读取前四行。问题是,当我第二次按下按钮时,它将不会读取接下来的四行。txt文件如下所示
one
two
three
four
five
six
seven
eight
难道我不应该每次按下按钮就创建一个BufferedReader吗?
public void fnext() {
try {
BufferedReader br = new BufferedReader(new FileReader(fr));
if(!br.ready()) {