find, xargs なしでフォルダの下の全てのファイルの中身をcatしたい


abd shellにて、/proc/sys/net/ipv4 の下にあるファイル全てに対してcatを実行したいです。

ターゲットのフォルダに移動

[code]

    adb shell
    cd /proc/sys/net/ipv4
    
[/code]

フォルダ内のファイル

[code]

    ls
    tcp_wmem
    tcp_keepalive_intvl
    tcp_congestion_control
    .
    .
    .
    
[/code]

１つのファイルだけcatする場合

[code]

    cat tcp_congestion_control
    $cubic
    
[/code]

期待する結果

[code]

    tcp_wmem                              
    262200  524400  2560000
    tcp_keepalive_intvl 
    75
    tcp_congestion_control
    cubic
    
[/code]

試したコードとエラー

[code]

    $ find /proc/sys/net/ipv4/  -type f -exec cat {} \;
          /system/bin/sh: find: not found
    
[/code]




`/proc/sys/net/ipv4` 直下のファイルだけでよければ簡単ですね。

[code]

    $ for f in /proc/sys/net/ipv4/*; do [ -f "$f" ] || continue; echo "$f"; cat "$f"; done
    
[/code]

再帰的にファイルを探したい、かつ `find` が利用できなければ、関数でも用意しましょう。例えば次のようになります。

[code]

    $ ff() { for p in "$@"; do [ -d "$p" ] && { ff "$p"/*; continue; }; echo "$p"; done; }
    
[/code]

この関数 `ff` (find file から名付けました)は、引数に指定したパスから再帰的にファイル (ディレクトリ以外) を探して表示します。

[code]

    $ ff /proc/sys/net/ipv4
    
[/code]

あとは適当にループして順次処理するだけです。

[code]

    $ ff /proc/sys/net/ipv4 |while read f; do echo "$f"; cat "$f"; done
    
[/code]




`/proc/sys/net/ipv4` 直下のファイルだけでよければ簡単ですね。

[code]

    $ for f in /proc/sys/net/ipv4/*; do [ -f "$f" ] || continue; echo "$f"; cat "$f"; done
    
[/code]

再帰的にファイルを探したい、かつ `find` が利用できなければ、関数でも用意しましょう。例えば次のようになります。

[code]

    $ ff() { for p in "$@"; do [ -d "$p" ] && { ff "$p"/*; continue; }; echo "$p"; done; }
    
[/code]

この関数 `ff` (find file から名付けました)は、引数に指定したパスから再帰的にファイル (ディレクトリ以外) を探して表示します。

[code]

    $ ff /proc/sys/net/ipv4
    
[/code]

あとは適当にループして順次処理するだけです。

[code]

    $ ff /proc/sys/net/ipv4 |while read f; do echo "$f"; cat "$f"; done
    
[/code]

