假设在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列)
做这件事最好的方法是什么?
我想知道如何使awk从管道输出和文件中获取字符串?
基本上,我已经有了一系列的命令,最终会吐出一个字符串。我想对照csv文件(用逗号分隔的列)检查这个字符串。然后,我希望在文件中找到包含csv文件第7列中的字符串的第一行,并打印出该行第5列的内容。另外,我不太了解linux命令行实用程序/awk,所以可以随意提出完全不同的方法。:)
CSV文件内容如下所示:
col1,col2,col3,col4,col5,etc...
col1,col2,col3,col4,col5,etc...
etc...
我的总体思路是:
(rest of commands that will give a stri
当我运行下面的命令时,它输出一个列列表如下:
# rancher clusters
CURRENT ID STATE NAME PROVIDER
* abcd active test-cluster Imported
efgh active prod-cluster Imported
xyzd active dev-cluster
假设我有一个文件A包含需要删除的列号(我的输入文件fileB中确实有500多个列),
fileA:
2
5
我想从fileB中删除这些列(2和5):
a b c d e f
g h i j k l
在Linux中获得:
a c d f
g i j l
我该怎么办?我发现我可以避免用代码打印那些列:
awk '{$2=$5="";print $0}' fileB
但是,这样做有两个问题,第一,它没有真正删除那些列,它只是使用空字符串来替换它们;其次,不是手动输入这些列号,而是如何通过从另一个文件中读取这些列号来获得这些列号。
原始问题:假设我有一个文件A包含需要
在linux中,我尝试根据第1和第2列对数据进行排序,只打印第3列中值最高的行。我的数据看起来
A 1 75.0
A 1 99.0
A 2 68.0
B 1 66.0
B 1 50.0
B 2 75.0
B 2 80.0
“键”位于第1和第2列,当第1和第2列的数据相等时,我只想打印第3列中值最高的行,如下所示
A 1 99.0
A 2 68.0
B 1 66.0
B 2 80.0
我试着用sort -k1,1 -k2,2进行排序,但是如何更改命令,即它只打印第3列中值最高的行?
我对linux/bash相当陌生,而且我在从文本文件中的特定列中打印两个值(最高值和最低值)时遇到了困难。文件的格式如下:
Geoff Audi 2:22:35.227
Bob Mercedes 1:24:22.338
Derek Jaguar 1:19:77.693
Dave Ferrari 1:08:22.921
正如您可以看到的,最后一列是一个计时,我试图使用awk打印出列中的最高和最低的时间。我真的很困惑,我试过:
awk '{print sort -n
我试着用awk分割列来打印一个句子,但是第一个列有空格。
我的初学者代码示例:
$ awk '/Linux/ { print "The filename","\""$1"\"","is located in",$2 }' test.txt
The filename "The" is located in test
The filename "Some" is located in file
The filename "File" is located
我在标签分隔的文本文件中有一个类似于数据的矩阵。例如:
a b c d
a 0.1 0.5 0.3 0.0
b 0.9 0.2 0.4 0.7
c 0.2 0.0 0.6 0.5
d 0.0 0.5 0.3 0.1
我想要这个矩阵数据在tsv文件中,例如第一列是行索引,第二列是列索引,第三列是值。例如,前4行如下:
a a 0.1
a b 0.5
a c 0.3
a d 0.0
我的档案很大。它大约是5000×5000矩阵;因此开始输入文件有大约5000行和5000列。我
我正在尝试写一个命令,它将获得每个平台的最后一个数字,并将它们相加,然后将该数字保存为变量。例如,对于下面随机文件中的"AIX“,我希望能够提取1和115,并将116保存为变量。然后,对于"Linx“,我想保存2、16、18、96和1,并将和保存为另一个变量。
cat randomfile.txt:
AIX,5.5.3-0,1
AIX,6.2.1-0,115
Linux x86-64,6.4.0-0,2
Linux x86-64,6.4.0-1,16
Linux x86-64,7.1.2-0,18
Linux86,6.1.3-4,96
Linux86,6.2.5-0,1
我能
我在目录中有大约175个标签分隔的txt文件。我对第一列感兴趣,我想从每个文件的第一列中删除所有重复的项,然后将它们打印为一个新的txt文件中的列。
#this removes all duplicates in column 1 of myFile.txt
awk '!x[$1]++' myFile.txt
#this copies all coulmn 1 from every file and paste them as columns in a new file
#!/bin/bash
OUT=AllColumns.tsv
touch $OUT
for fil
我有一个文本文件,其行如下(在Linux中):
A B C D
A B C J
E B C P
E F G N
E F G P
A B C Q
H F S L
G Y F Q
H F S L
我需要为前3列找到具有唯一值的行,打印它们的计数,然后为每一行打印汇总的最后一列,因此结果如下:
3 A B C D,J,Q
1 E B C P
2 E F G N,P
1 G Y F Q
2 H F S L
我尝试过的:
cat FILE | sort -k1,3 | uniq -f3 -c | sort -k3,5nr
有什么建议吗?
提前感谢!
这是我的样本文件
user@linux:~$ cat file.txt
Line 1
Line 2
Line 3
Line 4
Line 5
user@linux:~$
我可以用grep -A2 'e 2' file.txt打印第2-4行。
user@linux:~$ grep -A2 'e 2' file.txt
Line 2
Line 3
Line 4
user@linux:~$
我也可以用grep -n打印出行号。
user@linux:~$ grep -nA2 'e 2' file.txt
2:Line 2
3-Line 3
4