J'ai rencontré un problème en jouant avec 'grep'; et probablement à propos de la greffe d'un onglet. J'ai deux fichiers illustrés ci-dessous, tous deux délimités par des tabulations.Comment puis-je grep des lignes impliquant des onglets?
FM_DEL_50r.bed
chr1 3392391 3658426 DEL chr1 3392364 3658425 DEL
chr1 4011952 4392064 DEL chr1 4011953 4392062 DEL
chr1 4468526 4665322 DEL chr1 4468523 4665322 DEL
FC_DEL_50r.bed
chr1 2612264 2613324 DEL chr1 2612205 2613007 DEL
chr1 3392391 3658426 DEL chr1 3392391 3658426 DEL
chr1 4011952 4392064 DEL chr1 4011953 4392060 DEL
j'espère grep quelques lignes qui apparaissent dans les deux fichiers:
cat FC_DEL_50r.bed |grep `cat FM_DEL_50r.bed |head -2|tail -1|awk '{print $2"\t"$3}'`
Cependant, il y a erreur:
grep: 4392064: No such file or directory
J'ai essayé cat FM_DEL_50r.bed |head -2|tail -1|awk '{print $2"\t"$3}'
, cela fonctionne réellement et sorties 4011952 4392064
Donc, peut-être que nous ne pouvons pas grep le format comme «numéro» \ t "numéro"? thx
éditer: comment je suis stupide. Je devrais utiliser des guillemets doubles .......... (j'ai utilisé une seule citation et ne fonctionne pas ...)
cat FC_DEL_50r.bed |grep "`cat FM_DEL_50r.bed |head -2|tail -1|awk '{print $2"\t"$3}'`"
des questions de suivi: J'ai écrit un script bash , sur la base des questions ci-dessus:
#!/bin/bash
for((c=1;c<=542;c++))
do
LINE=`head -$c FM_DEL_50r.bed|tail -1`
P1=`cat $LINE|awk '{print $1"\\t"$2"\\t"$3}'`
GREP1=`cat FC_DEL_50r.bed |grep "$P1"`
X1=`cat $GREP1 |awk '{print $5"\\t"$6"\\t"$7}'`
P2=`cat $LINE|awk '{print $5"\\t"$6"\\t"$7}'`
GREP2=`cat MC_DEL_50r.bed |grep "$P2"`
X2=`cat $GREP2 |awk '{print $5"\\t"$6"\\t"$7}'`
if [ $X1 -eq $X2 ]
then
echo "$LINE"\t"$X1"
fi
done
Cependant, il produit
cat: chr1: No such file or directory
cat: 27122653: No such file or directory
cat: 27446984: No such file or directory
cat: DEL: No such file or directory
cat: chr1: No such file or directory
cat: 27880115: No such file or directory
cat: 28225069: No such file or directory
cat: DEL: No such file or directory
on peut dire qu'elle divise toutes les colonnes d'une ligne et ne peut pas les reconnaître. Quel est le problème cette fois? thx
thax .......... cela fonctionne ... – user815408