这是我的1.file
id
a1
a2
a3
a4
Run Code Online (Sandbox Code Playgroud)
这是我的2.file
DW 1 2 3 4
KD 2 3 4 5
LBJ 4 4 4 4
Run Code Online (Sandbox Code Playgroud)
我想要得到我的最终文件
id a1 a2 a3 a4
DW 1 2 3 4
KD 2 3 4 5
LBJ 4 4 4 4
Run Code Online (Sandbox Code Playgroud)
我尝试
cat 1.file |tr "\n" "\t"|sed -e 's/,$/\n/'
Run Code Online (Sandbox Code Playgroud)
进而
cat 1.file 2.file >> fina.file
Run Code Online (Sandbox Code Playgroud)
但我想找到awk
路
这是我的文件,其中包含三列并用“\t”分隔,第二列的分隔符是空白
1 a b tom
2 a b c sim
3 a mary
4 o l shey
5 c bob
Run Code Online (Sandbox Code Playgroud)
我想获取第二列包含多个元素的第一个文件
1 a b tom
2 a b c sim
4 o l shey
Run Code Online (Sandbox Code Playgroud)
然后我想得到第二个这样的文件
1 a tom
1 b tom
2 a sim
2 b sim
2 c sim
4 o shey
4 l shey
Run Code Online (Sandbox Code Playgroud)
事实上,我已经尝试过了
awk -F\\t 'BEGIN {OFS=FS} {n=split($2,aa," ");for (i=1;i<=n;i++) {$2=aa[i]; printf "%s\n" $0 }}'
Run Code Online (Sandbox Code Playgroud)
但看起来没用。你能给我一些建议吗?谢谢。
awk-F
这是我的文件
a_b_1
b_c_3
c_1
Run Code Online (Sandbox Code Playgroud)
最终文件
a_b 1
b_c 3
c 1
Run Code Online (Sandbox Code Playgroud)
如何通过 awk 获取我的最终文件
当前目录下存在以下文件
GCF_000901975.1_ViralProj181986_genomic.fna.gz
GCF_001885505.1_ViralProj344311_genomic.fna.gz
GCF_000901995.1_ViralProj181990_genomic.fna.gz
GCF_001041015.1_ViralProj287961_genomic.fna.gz
Run Code Online (Sandbox Code Playgroud)
我想像这样重命名当前文件
GCF_000901975.1
GCF_001885505.1
GCF_000901995.1
GCF_001041015.1
Run Code Online (Sandbox Code Playgroud)
我正在使用下面的脚本来获取它,但它失败了
for file in `ls | grep .gz`
do
newfile=`echo $file | awk -F "_" '{print $1,"_",$2,".gz"| sed 's/ //g"`
mv $file $newfile
done
Run Code Online (Sandbox Code Playgroud)
有人可以给我一些建议吗?或者也许我应该尝试“拆分”,欣赏它