我需要使用unix shell逐列比较两个文件,并将差异存储在结果文件中。
例如,如果第一个文件的第一个记录的第1列与第二个文件的第一个记录的第1列匹配,则结果将在结果文件中针对该列存储为'=‘,但如果它发现列值存在任何差异,则需要在结果文件中打印相同的值。
下面是确切的要求。
文件1:
id code name place
123 abc Tom phoenix
345 xyz Harry seattle
675 kyt Romil newyork
文件2:
id code name place
123 pkt Rosy phoenix
345 xyz Ha
假设我有一个文件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包含需要
我有以下形式的数据:
num1 This is a string
num2 This is another string
我想限制长度( tab..such )<4的第一个字符串之后的所有字符串的长度。因此,我得到的输出是:
num1 This is a string
num2 This is another
我可以使用python做到这一点。但我正在努力寻找linux的等价物,以实现同样的目标。
我需要将一个文件(file1)中指定的字符串列表与另一个文件(file2)进行比较,然后使用linux只报告包含字符串的列的匹配部分和另一个列
下面是一个示例:
包含要搜索的字符串的文件-file 1如下所示
Name
Laura
Caroline
Chan
Carol
要搜索的文件- file2:
Name Title Salary
George Research fellow 48000
Vanesse, Laura , Robert Graduate
假设在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列)
做这件事最好的方法是什么?
我有一个折叠的剧本:
#!/bin/sh
# this script splits a big CSV file, by 2nd column.
# the results will be as many CSV files as distinct values exist in original file, in the 2nd column.
PO_list=$(awk -F";" '{print $2}' test.csv | awk '!seen[$0]++')
for i in $PO_list;
do
c
我是这个网站和编程世界的新手,我希望你有时间来帮助我。我的问题如下:我有一个包含多个列的文件。在第二列中有值。我尝试计算每个值到给定数字的总和,并用包含求和结果的新列替换第二列。下面是我的输入示例: A B C
x 1 t
y 2 u
z 3 v 我想将B列中的值求和为5,并得到如下所示的输出: A B C
x 6 t
y 7 u
z 8 v 我尝试的代码是 zcat my_file.vcf.gz| tail -n +49 | awk 'BEGIN{FS=OFS="\t"} {print $0, $2+5}'>my.output.vcf 提前感谢
假设我有以下两个文件,其中有这样的条目(number、IP和User):
30000 11.11.11.11 Dalvik/2.1.0 Linux
10000 22.22.22.22 GetintentCrawler getintent.com
5000 33.33.33.33 Mozilla/5.0 X11; Linux i686 AppleWebKit/537.36 KHTML, like Gecko Chrome/43.0.2357.130 Safari/537.36
3000 44.44.44.44 Mozilla/5.0 Macintosh; Intel Mac OS X 10_
我有一个这样的文本文件。
res ABS sum
SER A 1 161.15 138.3
CYS A 2 66.65 49.6
PRO A 3 21.48 15.8
ALA A 4 77.68 72.0
ILE A 5 15.70 9.0
HIS A 6 10.88 5.9
我想根据最后一列(Sum)的值提取第一列(Res)的名称。如果sum >25和sum<25,我必须打印重名。怎样才能得到这样的输出呢?
我有以下输入
server01,
server02,
server03,
server04, windows 2008 R2 USA
server05, Linux Centos Canada
server06,
server07,
server08, Linux RedHat UK
server09,
server10,
...
我需要命令将列2中没有任何内容的行替换为文本,以获得以下输出:
server01, Incomplete
server02, Incomplete
server03, Incomplete
server04, windows 2008 R2 USA
s
如何比较两个文件?我需要将linux文件的一列与另一个文件的第二列进行比较,以获得差异。
假设我有以下文件。
文件1:
a 3
b 6
c 8
d 7
g 5
p 16
文件2:
a 1
b 6
c 8
d 7
g 5
我需要比较文件1的第二列和文件2的第二列,并得到差异。
所需输出文件1-文件2:
a 2
b 0
c 0
d 0
g 0
p 16