我有一组非常大的字符串,文件的每一行都有一个。许多字符串在文件中的不同位置出现不止一次。
我想要使用 awk、grep、uniq 等 unix 命令对字符串进行频率计数。我尝试了几种组合,但没有奏效。
获取频率计数的确切命令是什么?
我需要删除包含大于用户指定数字的值的大文件中的行(见图)。例如,我想删除值大于 5e-48 (x>5e-48) 的行,即 7e-46, 7e-40, 1e-36,.... 的行应该被删除。
sed、grep、awk 或任何其他命令可以做到这一点吗?
谢谢
马库斯
 
我想将两个文件合并为一个文件,并根据第二列的值对它们进行排序。示例如下:
文件 1:
+ 1.01 id 120
- 1.20 id 145
+ 2.15 id 411
(continues)
Run Code Online (Sandbox Code Playgroud)
文件2:
r 0.21 id 4
r 1.78 id 85
r 102 id 850
(continues)
Run Code Online (Sandbox Code Playgroud)
我想将它们合并到一个文件中,但我想根据第 2 列将它们按升序排列,如下所示:
文件 3:
r 0.21 id 4
+ 1.01 id 120
- 1.20 id 145
r 1.78 id 85
+ 2.15 id 411
r 102 id 850
Run Code Online (Sandbox Code Playgroud)
我怎么能这样做?
我有一个包含数百条这样的记录的文件
100,502030,0,444,RSVYU,10
101,501412,1,555,DDGTH,11
102,502269,0,222,DDERF,60
103,508877,2,111,SDEFV,23
Run Code Online (Sandbox Code Playgroud)
如果第 3列的值为0,如何将第 4列的值替换为000
我研究了很多,找不到解决方案。到目前为止我得到了这个
cat testfile.txt | sed -n -r 's/^[0-9]*,[0-9]*,0/000/p'
Run Code Online (Sandbox Code Playgroud)
但它取代了第一部分
我想找到一种使用awk或sed删除包含多于4位数字的行的方法:
输入:
test12test1
test154test43test
test12
Run Code Online (Sandbox Code Playgroud)
所需的输出:
test12test1
test12
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
我有这样一个文件:
Name Position Letter String
Bla 123 A ..B.,,,.C..
Bla 123 B ..a.,,,.C..
Bla 123 C ..b.,,,.A..
Run Code Online (Sandbox Code Playgroud)
我想替换.和,字母(在第一行中A)
最终产品:
Name Position Letter String
Bla 123 A AABAAAAACAA
Bla 123 B BBaBBBBBCBB
Bla 123 C CCbCCCCCACC
Run Code Online (Sandbox Code Playgroud)
awk思想是用第3列中的"the"字符替换第4列中的字符.我认为awk应该是正确的工具,但我坚持用字符串替换字符.
sed s/\(^.\{4\}\)./\\{3\}/ 没有工作,我认为sed可能是错误的工具.
欢迎awk/sed/python/perl/vi解决方案.
因此,基本上搜索.txt文件中的行,如果它以"This"这样的单词开头,如果它存在,如何交换该句中的目标单词?用bash,perl或awk打开它.
我无法理解这句话:
awk '/^\/\*/ {f=1} {print f?"":$0} /\*\/$/ {f=0}'
Run Code Online (Sandbox Code Playgroud) 我需要比较两个巨大的csv文件和一千个像bellow这样的条目:
id;val
1;a
2;b 
3;c
Run Code Online (Sandbox Code Playgroud)
Ans第二个文件具有以下结构
id1;entry    
1;002
2;x90 
5;d07
Run Code Online (Sandbox Code Playgroud)
期望的结果是匹配并组合具有相同id/id1值的行,并创建第三个csv文件,其中只有匹配的条目显示如下:
idR;valR;entryR
1;a;002
2;b;x90 
Run Code Online (Sandbox Code Playgroud)
为此,我可以在不同的数据库表中加载每个文件,并执行类似这样的选择以检索所有匹配的值:
select tb1.id, tb1.val tb2.entry 
  from tb1, tb2
 where tb1.id = tb2.1   
Run Code Online (Sandbox Code Playgroud)
我可以用这种方法检索所需的所有值.
但是我们假设这些文件可以被排序,并且以这种方式使用它可以使用awk来打印具有相同id和id1值的条目的结果.我能做的最好的事情是为每个值创建两个关联数组,并使用awk和sed/cut执行二进制搜索?
可以加载这两个文件并立即组合它们以生成带有结果的最终csv文件吗?
或者我可以用perl标准的lib来实现这个目的吗?
我正在编写一个简单的脚本,需要使用bash命令来获取第一行的第二个单词.在下面的文件中,我想只打印出"主机",虽然我在这方面遇到了麻烦.
-bash-3.2$ cat filewithstuff
SERVERNAME      host
DOMAIN          all-nfs
-bash-3.2$ cat filewithstuff | awk  '{print $2}'
host
all-nfs
Run Code Online (Sandbox Code Playgroud)
我能够在linux主机上使用以下命令:
cat filewithstuff | sed -n 1p | awk "{print \$1}"
Run Code Online (Sandbox Code Playgroud)
虽然当我从Python脚本运行它时,我得到以下错误:
Executed: /bin/bash -l -c "cat filewithstuff | sed -n 1p | awk \"{print \\$1}\""
Aborting.
Fatal error: One or more hosts failed while executing task 'uninstallApp'
Aborting.
Run Code Online (Sandbox Code Playgroud)
似乎我的Python脚本不喜欢bash命令中的"\",有没有人知道我可以尝试的替代命令?