Ich verwende folgenden Code, um die Werte zu grep, die die Bedingungen erfüllen, wie unten im Code angegeben. Die zu greppende Zeile sollte entweder den zweiten Spaltenwert -1 in der Datei erfüllen oder 3. Spalte + 1 Wert vorhanden sein.Zeile nicht grepped, auch wenn vorhanden
while read intron ; do
start=$(grep -w $intron ../file_to_be_grepped_from | awk '{print ($2-1)}')
end=$(grep -w $intron ../file_to_be_grepped_from | awk '{print ($3+1)}')
if (grep $start ../file_to_be_grepped_from | grep -q :E) && (grep $end ../file_to_be_grepped_from | grep -q :E) ; then
grep -w $intron ../file_to_be_grepped_from
fi
done < another_file
Jedoch habe ich die folgende Störung erhalte:
grep: 46844233: No such file or directory
grep: 46844359: No such file or directory
grep: 40174126: No such file or directory
grep: 40174403: No such file or directory
grep: 40176362: No such file or directory
grep: 40174671: No such file or directory
grep: 31542739: No such file or directory
, aus denen die meisten Werte sind nicht in der Datei vorhanden, mit Ausnahme von 40.174.403 und 40174671. Die Linien, die grep werden soll (und sind vorhanden) aber die nicht aussehen wie folgt:
chr19 40174127 40174403 ENSG00000226025:E4 +
chr19 40174671 40174788 ENSG00000226025:E5 +
Alle Vorschläge zur Korrektur und Verbesserung des Codes wäre willkommen. Mein Eingang sieht ungefähr so aus:
ENSG00000225518:I2
ENSG00000225535:I1
ENSG00000225535:I2
ENSG00000225535:I3
ENSG00000226025:I4
und die erwartete Ausgabe ist
chr1 226274755 226277190 ENSG00000225518:I2 +
chr7 114719164 114758265 ENSG00000225535:I1 +
chr7 114758880 114758988 ENSG00000225535:I2 +
chr7 114759111 114762231 ENSG00000225535:I3 +
chr19 40174404 40174670 ENSG00000226025:I4 +
Zeigen Sie Eingabe und erwartete Ausgabe, es kann noch einfacher zu erreichen, was Sie wollen. –
Ich bin erstaunt, dass alle Werte vorhanden sind, während Sie "drucken ($ 2-1)" und "drucken ($ 3 + 1)". –
tatsächlich hat es für viele Zeilen funktioniert, ich hoffe, das ist nicht das Problem. – AishwaryaKulkarni