Найти типы данных аргументов функции с помощью сценариев оболочки - обработка текста - PullRequest
0 голосов
/ 19 октября 2011

У меня есть файл с сигнатурами функций, подобный этому:

void something(float a, int b, char c);

Используя сценарии оболочки или подобное, как бы вы это обработали, чтобы в итоге получить:

float int char

1 Ответ

0 голосов
/ 19 октября 2011

Будет ли это работать?Я должен был сделать немного гимнастики с переменной IFS и немного для петель, но мне кажется, что это работает нормально.Если некоторые из «пустых» строк имеют начальные пробелы или символы табуляции, вам придется корректировать выражение sed как бы ...* test.sh

#!/bin/bash
filename=$1
OLD_IFS=$IFS
IFS=$'\n'
trap "rm -f $$.tmp" EXIT SIGHUP
for line in $(egrep -i "^void\ " $filename | sed -e 's/^void \w*(\(.*\));/\1/'); do
        IFS=,
        for s in $line; do
                echo $s | awk '{print $1}' >> $$.tmp
        done
        IFS=$'\n'
done
IFS=$OLD_IFS
sort $$.tmp | uniq | tr "\n" " "
echo
exit 0

Результат:

$ ./test.sh test.txt
char float int string
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...