Соответствие строкам, которые имеют более затем одно пространство и печать их

У меня есть 23, папки и каждая папка имеют две подпапки (всегда то же имя), и каждая подпапка имеет точно два файла (всегда то же имя). Таким образом, это похоже на это:

Folder1/BindingDB/chiral.smi
                 nochiral.smi
Folder1/Xray/chiral.smi
             nochiral.smi

 Folder2/BindingDB/chiral.smi
                     nochiral.smi
 Folder2/Xray/chiral.smi
                 nochiral.smi

Например, chiral.smi файл похож на это:

COCCNC(=O)[C@H]1[C@@H]([C@H]2CN3C(=O)C=CC=C3[C@@H]1N2C4=NC(=C(S4)C5=CC=CC=C5)C6=CC=C(C=C6)Cl)CO K00000004
C1[C@H]2[C@H](C=C([C@H]3[C@@H]2[C@H]4[C@@H]1[C@@H]([C@H]4C=C3)CC/C=C/CC5=CC=C(C=C5)O)C(=O)O)O  K00000005
C[C@]12CCC[C@@]([C@@H]1CC[C@@]34[C@H]2C[C@H]5[C@@H](C3)[C@]5(C4)CO)(C)C(=O)O  K00000006

Таким образом, здесь, последние две строки K00000005 и K00000006 имейте двойной интервал, и я хочу соответствовать этим двум строкам.

Я пытаюсь проверить все дважды chiral.smi и nochiral.smi файлы в моих папках, если у них есть строки, которые имеют двойной интервал (у меня должно только быть одно пространство в каждой строке каждого файла).

Я попробовал в ударе что-то вроде этого:

for i in */*/*.smi ; do sed -e "s/\s\{2,\}/ /g" $i; done но это не работает. Кроме того, когда я работаю sed -e "s/\s\{3,\}/ /g" *smi в подпапке (BindingDB или Рентгеновский луч) это печатает все строки, которые имеют только одно пространство. Кто-либо может помочь мне, так как я не могу выяснить то, что проблема?

1
задан 16 May 2018 в 06:01

2 ответа

Можно перечислить имена из любого .smi файлы, в которых любая строка содержит два смежных пробелов с

grep --include='*.smi' -rl '  ' .

, Если Вы хотите произвести сами строки, затем удалите l опция.

0
ответ дан 14 April 2019 в 20:47

Если я пойму это правильно, то что-то как

grep -l '  ' */*/*.smi

распечатает имена файлов "двойного интервала"

, Если Вы захотите, действительно нормализуют пробелы (' '-> ' ') можно попробовать к

sed -ri.bak 's/\s{2,}/ /g' */*/*.smi

и удалить файлы резервных копий, если все подходили

rm /*/*.smi.bak
0
ответ дан 14 April 2019 в 20:47

Другие вопросы по тегам:

Похожие вопросы: