Bash 递归地将目录中的每个文件截断为20行

Bash 递归地将目录中的每个文件截断为20行,bash,sed,Bash,Sed,我想与其他人分享我的代码库,让他们在看不到所有细节的情况下一瞥 我只想让他们看到目录结构和每个文件的前N行 如何使用bash或其他标准脚本语言(如python)实现这一点 注意:如果其他一些工具可以做到这一点,它也会起作用。像这样的工具可以做到这一点: import os for r, d, files in os.walk('.') : for f in files : name = os.path.join( r, f ) with open( n

我想与其他人分享我的代码库,让他们在看不到所有细节的情况下一瞥

我只想让他们看到目录结构和每个文件的前N行

如何使用bash或其他标准脚本语言(如python)实现这一点


注意:如果其他一些工具可以做到这一点,它也会起作用。

像这样的工具可以做到这一点:

import os

for r, d, files in os.walk('.') :
    for f in files :
        name = os.path.join( r, f )

        with open( name ) as fin :
            text = fin.readlines()[:20]

        with open( name, 'w' ) as fout :
            fout.write( ''.join( text ) )
单向使用:


这似乎与Git或GitHub没有任何关系(即使您打算稍后使用它们的结果,它们与您在代码中的操作方式无关)祝你好运。@oguzismail:也应该与BSD/OSX sed一起使用,而不仅仅是GNU sed。
find-type f-exec sed-si 20q{}+
find . -type f -exec sed -i.bak '21,$d' {} \;