标签: cat

使用排序| awk 处理 csv 中的一列?

使用p.txt:

$cat p.txt
R 3
R 4
S 1
S 2
R 1
T 1
R 3
Run Code Online (Sandbox Code Playgroud)

以下命令根据第二列进行排序:

$cat p.txt | sort -k2
R 1
S 1
T 1
S 2
R 3
R 3
R 4
Run Code Online (Sandbox Code Playgroud)

以下命令删除第二列中的重复值:

$cat p.txt | sort -k2 | awk '!x[$2]++'
R 1
S 2
R 3
R 4
Run Code Online (Sandbox Code Playgroud)

现在为 sapce 插入一个逗号,我们有以下文件:

$cat p1.csv
R,3
R,4
S,1
S,2
R,1
T,1
R,3
Run Code Online (Sandbox Code Playgroud)

以下命令仍然根据第二列进行排序:

$cat p1.csv | sort -t "," -k2
R,1
S,1
T,1
S,2
R,3
R,3 …
Run Code Online (Sandbox Code Playgroud)

sorting awk cat

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

与 pyserial 一起使用后无法使用 cat 打开 /dev/tty/USB0

打开我的串行端口/dev/tty/USB0pyserial

>>> ser = serial.Serial("/dev/ttyUSB0", 57600)
>>> ser.isOpen()
True
>>> ser.close()
>>> ser.isOpen()
False
Run Code Online (Sandbox Code Playgroud)

我无法再/dev/ttyUSB0使用命令读取,cat /dev/ttyUSB0
通常cat /dev/ttyUSB0是像这样的阻塞命令read,但是在使用 pyserial 打开/关闭串行端口后,该cat命令变得非阻塞,看起来很忙......

有谁知道是什么原因造成的?

python linux tty cat pyserial

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

如何使用cat读取多个TXT文件的第二行并输出结果?

如何读取多个文件的第二行,然后将结果输出到TXT文件?

到目前为止,我可以使用以下命令读取一个文件的第二行:

cat file-1.txt | awk 'NR == 2'
Run Code Online (Sandbox Code Playgroud)

但是,它正在读取数百个文件的第二行并将结果写入 TXT 文件,但我陷入了困境。

cat file-1.txt | awk 'NR == 2'
cat file-2.txt | awk 'NR == 2'
...
cat file-199.txt | awk 'NR == 2'
cat file-200.txt | awk 'NR == 2'
Run Code Online (Sandbox Code Playgroud)

awk cat

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

bash - 将不同子文件夹中的文件连接到一个文件中,并将每个文件名放在第一列中

我试图将不同子文件夹中的几千个文件连接到一个文件中,并将每个连接文件的名称插入为第一列,以便我知道每个数据行来自哪个文件。本质上是从这样的事情开始:

编辑:我忽略了每个文件都有相同的标头,因此我相应地更新了请求。

Folder1
file1.txt
A   B   C
123 010 ...
456 020 ...
789 030 ...

Folder2
file2.txt 
A   B   C
abc 100 ...
efg 200 ...
hij 300 ...
Run Code Online (Sandbox Code Playgroud)

并输出:

CombinedFile.txt
A      B    C
file1  123  010 ...
file1  456  020 ...
file1  789  030 ...
file2  abc  100 ...
file2  efg  200 ...
file2  hij  300 ...
Run Code Online (Sandbox Code Playgroud)

读完这篇文章后,我尝试了以下代码,但最终出现语法错误(抱歉,我对 awk 非常陌生!)

shopt -s globstar
for filename in path/**/*.txt; do
    awk '{print FILENAME "\t" $0}' *.txt > CombinedFile.txt …
Run Code Online (Sandbox Code Playgroud)

bash awk cat txt

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

将多个文件连接到unix中的单个文件中

我有两种类型的文件 - 简单的字符文件和pdf文件.

第一个文件的名称是plainFile.abc,第二个文件的名称是pdfFile.pdf

我想将这两个文件合并为一个文件.

目标文件的名称将是combined.file

我正在使用cat命令来实现相同的目的:

Way 1:

cat plainFile.abc > combined.file
cat pdfFile.pdf > combined.file

Way 2:

cat plainFile.abc > combined.file
cat pdfFile.pdf >> combined.file   
Run Code Online (Sandbox Code Playgroud)

请注意上述方式中">"和">>"的区别.

在第一种方式中,第二个文件没有附加到目标文件,即使定义说"运算符>可用于将多个文件合并为一个".

在第二种方式中,两个文件合并,但第二个文件被附加在第一个文件结束的位置.我不想要这个.我希望第二个文件从新行中的新位置开始.

我们的想法是将目标文件发送到将被解析的大型机.

所以我希望第二个文件从第一个位置开始:

----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
second file should start from position one
Run Code Online (Sandbox Code Playgroud)

但是,现在如果第一个文件在第3个位置结束,那么第二个文件就会在第4个文件之后立即附加.

如何达到我的要求?

CAT命令有更好的方法吗?

谢谢阅读!

unix file mainframe cat

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

CommandLine参数不起作用C.

我试图File1.txt ">" File2.txt作为终端参数传递给我的程序,以覆盖cat命令.但由于某种原因,该计划无法运作.虽然argc在上面定义的情况下是4,但程序中的条件仍未实现.这是代码:

int main(int argc, char *argv[])
{
int readbytes,fp;
char buf[1024];

if(argc==2)
{
    fp=open(argv[1],O_RDONLY);
    dup2(0,fp);
    close(fp);
    readbytes=read(STDIN_FILENO,buf,1024);
    write(STDOUT_FILENO,buf,readbytes);
}

if(argc==4)
{
    printf("inside4");
    fp=open(argv[1],O_RDONLY);

    dup2(fp,0);

    close(fp);

    fp=open(argv[3],O_WRONLY|O_CREAT|O_TRUNC,S_IRWXU);

    dup2(fp,1);

    close(fp);

    readbytes=read(STDIN_FILENO,buf,1024);

    //printf("%c",buf);

    write(STDOUT_FILENO,buf,readbytes);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)

我找不到这个问题的解决方案,所以我现在就把它留给专家.这个问题的原因是什么?

注意:

出于某种原因,当我发送./prog File1.txt> File2.txt到程序时,argc==2条件被选中,但是argc是4.为什么?

问候

c unix terminal cat

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

Unix cat只输出行范围

如何输出cat命令以仅显示文件的85到158行的输出.
我知道我可以将数字添加到每个石灰然后管道它,但我不想删除后面的数字.

或者我应该使用其他文本解析器?谢谢.

unix shell cat

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

如果使用%=> 80%,则着色df输出

我有40多个远程站点,我每天运行CRONTAB,从每个站点服务器收集df -h,并将其附加到家庭办公室报表服务器上的每日日志文件中.是否有一种简单的方法来cat/grep/sed/awk/perl /这个文件,以便任何具有80%或更高的Use%的行被突出显示/着色,因此服务器存在存储限制的可能性较小被忽视了?

谢谢您的帮助.

perl awk grep sed cat

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

在Bash中使用cat和grep命令

我在尝试实现此bash命令时遇到问题:

连接当前目录中在文件文本中至少出现一次单词BOB(在任何情况下)的所有文本文件.

这样做是否正确使用cat命令然后grep用来查找单词的出现BOB

cat grep -i [BOB] *.txt > catFile.txt
Run Code Online (Sandbox Code Playgroud)

bash shell grep cat

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

正确的语法和`cat`命令的用法?

(这个问题是对这个评论的后续跟进,关于git hooks的答案)

我在bash(到目前为止)中太不熟练了解这句话以及如何采取相应的行动.更具体地说,我被建议避免以cat这种方式使用bash命令:

echo "$current_branch" $(cat "$1") > "$1"
Run Code Online (Sandbox Code Playgroud)

因为操作的顺序取决于特定的shell,它最终可能会破坏传递的参数的内容,所以如果我做对了就提交消息本身?

另外,如何"单独保存内容"?

以下是否有意义?

tmp = "$1"
echo "$current_branch" $(cat $tmp) > "$1"
Run Code Online (Sandbox Code Playgroud)

bash cat

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

标签 统计

cat ×10

awk ×4

bash ×3

unix ×3

grep ×2

shell ×2

c ×1

file ×1

linux ×1

mainframe ×1

perl ×1

pyserial ×1

python ×1

sed ×1

sorting ×1

terminal ×1

tty ×1

txt ×1