我有一个名为 links.txt 的文本文件,它看起来像这样
link1
link2
link3
Run Code Online (Sandbox Code Playgroud)
我想逐行遍历这个文件并对每一行执行一个操作。我知道我可以使用 while 循环来做到这一点,但由于我正在学习,我想使用 for 循环。我实际上使用了这样的命令替换
a=$(cat links.txt)
Run Code Online (Sandbox Code Playgroud)
然后像这样使用循环
for i in $a; do ###something###;done
Run Code Online (Sandbox Code Playgroud)
我也可以做这样的事情
for i in $(cat links.txt); do ###something###; done
Run Code Online (Sandbox Code Playgroud)
现在我的问题是当我在变量 a 中替换 cat 命令输出时,link1 link2 和 link3 之间的换行符被删除并被空格替换
echo $a
Run Code Online (Sandbox Code Playgroud)
产出
链接1 链接2 链接3
然后我使用了 for 循环。当我们执行命令替换时,是否总是用空格替换新行?
问候
我正在尝试从该网站下载文件。
网址为:http : //www.ncbi.nlm.nih.gov/geo/download/?acc=GSE48191&format=file
当我使用此命令时:
wget http://www.ncbi.nlm.nih.gov/geo/download/?acc=GSE48191&format=file
Run Code Online (Sandbox Code Playgroud)
我只得到 index.html?acc=GSE48191这是某种二进制格式。
如何从该 HTTP 站点下载文件?
我有一个这样的文件:
a AGTACTTCCAGGAACGGTGCACTCTCC
b ATGGATTTTTGGAGCAGGGAGATGGAATAGGAGCATGCTCCAT
c ATATTAAATGGATTTTTGGAGCAGGGAGATGGAATAGGAGCATGCTCCATCCACTCCACAC
d ATCAGTTTAATATCTGATACGTCCTCTATCCGAGGACAATATATTAAATGGA
e TTTGGCTAAGATCAAGTGTAGTATCTGTTCTTATAAGTTTAATATCTGATATGTCCTCTATCTGA
Run Code Online (Sandbox Code Playgroud)
我想制作a.seq包含序列的文件AGTACTTCCAGGAACGGTGCACTCTCC。同样b.seq包含ATGGATTTTTGGAGCAGGGAGATGGAATAGGAGCATGCTCCAT. 简而言之,Column1 应该用作带有扩展名的输出文件名,.seq然后它应该有相应的 column2 序列。我可以通过编写 perl 脚本来做到这一点,但命令行上的任何内容都会有所帮助。希望尽快听到。
我有以下格式的文件,它是制表符分隔的
a k testis adult male 8 week rRNA
b k testis adult male 8 week rRNA
c k testis adult male 8 week rRNA
Run Code Online (Sandbox Code Playgroud)
我想在每一行上做一些操作,所以我使用了一个 while 循环。我想在选项卡上拆分每一行,然后存储让我们说第 6 列8 week的变量。我正在使用此代码,但无法获得我想要的
while read -r line; do tmp=(${line///}); col6=${tmp[5]}; echo "$col6"; done < file.txt
Run Code Online (Sandbox Code Playgroud)
这给了我8而不是8 week。8 周在 8 和周之间有一个空格,因此我想在选项卡上拆分该行。
我有一个如下所示的文件。第 9 列的值由 ** 连接。
chrXV 234346 234546 snR81 + SNR81 chrXV 234357 0.0003015891774815342**0.131826816475 +
chrXV 234346 234546 snR81 + SNR81 chrXV 234385 0.0002208827994288481**0.0118547789578 +
chrXV 234346 234546 snR81 + SNR81 chrXV 234396 0.0001799579220002955**0.00583993781634 +
chrXV 234346 234546 snR81 + SNR81 chrXV 234410 0.003451057940295026**0.00352844797952 +
Run Code Online (Sandbox Code Playgroud)
我想要一个输出,其中我可以将 2 个值作为 sep 列。我怎样才能在 awk 中做到这一点。
这是我想要的输出。显示输出的第一行:
chrXV 234346 234546 snR81 + SNR81 chrXV 234357 0.0003015891774815342 0.131826816475 +
Run Code Online (Sandbox Code Playgroud) 我有一个制表符分隔的文件,如下所示:
gene v1 v2 v3 v4
g1 NA NA NA NA
g2 NA NA 2 3
g3 NA NA NA NA
g4 1 2 3 2
Run Code Online (Sandbox Code Playgroud)
每行中的字段数是固定且相同的。我想从上面的文件中删除那些行,其中从第 2 列到最后一列的每一行的所有字段都是 NA。然后输出应如下所示:
gene v1 v2 v3 v4
g2 NA NA 2 3
g4 1 2 3 2
Run Code Online (Sandbox Code Playgroud) 我有一个基因列表文件。像这样的事情
SWT21
SSA1
NRP1
EFB1
TFC3
MDM10
Run Code Online (Sandbox Code Playgroud)
我还有另一个文件,其中也包含我列表中这些基因的名称以及有关它们的其他基本信息。第二个文件看起来像这样:
chrI 147593 151166 YAL001C - TFC3
chrI 143706 147531 YAL002W + VPS8
chrI 142173 143160 YAL003W + EFB1
chrI 140759 141407 YAL004W + YAL004W
chrI 139502 141431 YAL005C - SSA1
chrI 137697 138345 YAL007C - ERP2
chrI 136913 137510 YAL008W + FUN14
chrI 135853 136633 YAL009W + SPO7
chrI 134183 135665 YAL010C - MDM10
Run Code Online (Sandbox Code Playgroud)
我想在第二个文件中提取那些具有第一个文件中存在的基因名称的行。
我写了一个非常基本的命令替换脚本,如下所示:
#!/bin/bash
files=$(ls *.fastq);
echo $files
Run Code Online (Sandbox Code Playgroud)
该目录包含一堆 .fastq 文件,我只想使用 echo 命令来输出它们
上面的 sript 输出 fastq 文件,每个 fastq 文件名之间有一个空格。
当我以这种方式使用它时
#!/bin/bash
files=$(ls *.fastq);
echo "$files"
Run Code Online (Sandbox Code Playgroud)
它在新行上打印结果。
为什么会这样?这与命令替换有关吗?
谢谢
我有一个文本文件,每行都有一些定义的字段数,但它们可能因行而异。我想要做的就是在该行字段中的每个值前添加“=”符号。
例如输入文件
A B C D E
P Q R S T U
L M N O
Run Code Online (Sandbox Code Playgroud)
输出文件
=A =B =C =D =E
=P =Q =R =S =T =U
=L =M =N =O
Run Code Online (Sandbox Code Playgroud)
这也只是一个例子,我的文件包含一些字段数超过 20 的行。如何有效地做到这一点。
我有一个这样的文件
ILMN_1343291 TGTGTTGAGAGCTTCTCAGACTATCCACCTTTGGGTCGCTTTGCTGTTCG NM_001402.5
ILMN_1343295 CTTCAACAGCGACACCCACTCCTCCACCTTTGACGCTGGGGCTGGCATTG NM_002046.3
ILMN_1651209 TCACGGCGTACGCCCTCATGGGGAAAATCTCCCCGGTGACTTTCAGGTCC NM_182838.1
Run Code Online (Sandbox Code Playgroud)
我想从第三列的末尾删除数字扩展名,以便我的输出文件看起来像这样
ILMN_1343291 TGTGTTGAGAGCTTCTCAGACTATCCACCTTTGGGTCGCTTTGCTGTTCG NM_001402
ILMN_1343295 CTTCAACAGCGACACCCACTCCTCCACCTTTGACGCTGGGGCTGGCATTG NM_002046
ILMN_1651209 TCACGGCGTACGCCCTCATGGGGAAAATCTCCCCGGTGACTTTCAGGTCC NM_182838
Run Code Online (Sandbox Code Playgroud)
我怎样才能在命令行上最好使用awk?我可以做到这一点,perl但我很确定只有一个命令行可以做到这一点。