95439


rustのソースからstructの一覧を作成したいです。  
bashで以下のようなコードを組んであと一歩というところまで来ました。

[code]

    for src in $(find . | grep .rs$)
    do
       grep struct $src
    done
    
[/code]

このコードを実行すると例えば以下のような結果が得られます

[code]

    pub struct VarData {
    pub struct Assignment {
    pub struct Stats {
    struct Watcher {
    pub struct Lit(u32);
    pub struct Var(u32);
    
[/code]

ここからあと一歩進めて、

[code]

    VarData
    Assignment
    Stats
    Watcher
    Lit(u32)
    Var(u32)
    
[/code]

という感じの出力を得たいのですが、どのようにbashを組めばいいでしょうか？  
structの次の単語を得る？という感じかと思ってますが。。。  
あるいはbashでなくてもcargoなどで同様の機能があったりしますでしょうか？  
よろしくお願いします。

申し訳ありません。あとだしじゃんけんで大変、心苦しいのですが今回、対象としたいデータは全部で以下になります。  
今度こそ全部です。

[code]

    pub struct MainOptions {
    struct Subst<'s, S: 's> {
    struct DimacsParser<'p> {
    pub struct RegionAllocator {
    pub struct DecisionLevel(LevelIndex);
    pub struct VarData {
    pub struct Assignment {
    pub struct DirIter<'a> {
    pub struct RevIter<'a> {
    pub struct Clause {
    pub struct ClauseRef(allocator::Ref);
    pub struct ClauseAllocator {
    pub struct ClauseGC<'a> {
    struct LegacyCounter {
    pub struct IdxMap<K: Idx, V> {
    pub struct Iter<'a, K: Idx, V: 'a> {
    pub struct IterMut<'a, K: Idx, V: 'a> {
    pub struct IdxVec<K: Idx, V> {
    pub struct IdxHeap<K: Idx> {
    pub struct Lit(u32);
    pub struct Var(u32);
    pub struct Budget {
    pub struct BacktrackableFormula {
    pub struct BacktrackConflict<'a> {
    pub struct BacktrackDecide<'a> {
    pub struct ClauseDBSettings {
    pub struct Stats {
    pub struct ClauseDB {
    pub struct AnalyzeContext {
    pub struct DecisionHeuristicSettings {
    struct VarLine {
    pub struct DecisionHeuristic {
    pub struct Random {
    pub struct ElimClauses {
    pub struct VarStatus {
    pub struct ElimQueue {
    struct OccLine {
    pub struct OccLists {
    pub struct ElimOcc {
    pub struct SubsumptionQueue {
    pub struct SimplificatorSettings {
    struct Stats {
    pub struct Touched {
    pub struct Simplificator {
    struct Watcher {
    struct WatchesLine {
    pub struct Watches {
    pub struct RestartStrategy {
    pub struct LearningStrategy {
    struct LearningGuard {
    struct SimplifyGuard {
    struct Stats {
    pub struct SearchSettings {
    pub struct SearcherSettings {
    pub struct SearchCtx {
    pub struct Searcher {
    pub struct CoreSettings {
    pub struct CoreSolver {
    pub struct SimpSettings {
    pub struct SimpSolver {
    pub struct Stats {
    
[/code]

pub struct IterMut<'a, K: Idx, V: 'a> {  
などにも対応するにはどうしたらよいでしょうか？


CC BY-SA 4.0
2023-07-01T10:28:56.283
95437
2023-07-01T11:12:15.390
2023-07-01T11:12:15.390
18637
18637
question
bash
bashでrustのソースからstructの一覧を作りたい


GNU find と GNU grep を利用する場合。

[code]

    $ find --version
    find (GNU findutils) 4.9.0
    $ grep --version
    grep (GNU grep) 3.8
    
    $ find . -type f -regex '.*\.rs$' -exec grep -Po '(?<=struct )(.+?)(?=( *{|;))' {} +                                                                                      
    VarData
    Assignment
    Stats
    Watcher
    Lit(u32)
    Var(u32)
    
[/code]


CC BY-SA 4.0
2023-07-01T10:48:22.447
95439
2023-07-01T11:08:10.247
2023-07-01T11:08:10.247
47127
47127
95437
answer