小编Fre*_*ihl的帖子

Bash脚本列出前缀中的所有IP

我试图创建脚本,我可以输入一组前缀,然后将列出的前缀(包括网络/主机/广播)内的所有IP地址.

一个例子是:

./convert-prefix-to-IPs.sh 192.168.0.0/23 203.20.0.0/16
192.168.0.0
192.168.0.1
... 
192.168.0.255
192.168.1.0
.. 
192.168.1.255
203.20.0.0
..
203.20.255.255
Run Code Online (Sandbox Code Playgroud)

有一些Python/Perl脚本可以做到这一点,但我希望能有一个简单的bash脚本,因为它可能会在没有的Perl/Python的系统中使用(是的..我知道..)

bash ip-address

13
推荐指数
7
解决办法
3万
查看次数

H264帧查看器

你知道任何可以显示单个H264帧的所有标题/参数的应用程序吗?我不需要解码它,我只想看看它是如何构建的.

header h.264

11
推荐指数
3
解决办法
2万
查看次数

bash filename globbing - 对以capital开头的文件进行操作

假设我有一个包含以下jpeg文件的文件夹:

adfjhu.jpg  Afgjo.jpg  
Bdfji.jpg   bkdfjhru.jpg
Cdfgj.jpg   cfgir.jpg
Ddfgjr.jpg  dfgjrr.jpg
Run Code Online (Sandbox Code Playgroud)

如何删除或列出以大写字母开头的文件?

这可以用组合来解决find,grepxargs.

但是在bash中可以使用普通的文件循环/模式匹配吗?

下面的cmd不起作用,因为(据我所知)LANG设置为en_US 和整理顺序.

$ ls [A-Z]*.jpg
Afgjo.jpg  Bdfji.jpg  bkdfjhru.jpg  Cdfgj.jpg  cfgir.jpg  Ddfgjr.jpg  dfgjrr.jpg
Run Code Online (Sandbox Code Playgroud)

这种作品

$ ls +(A|B|C|D)*.jpg
Afgjo.jpg  Bdfji.jpg  Cdfgj.jpg  Ddfgjr.jpg
Run Code Online (Sandbox Code Playgroud)

但我不想为所有字符AZ做这个通用解决方案!

这可能吗?

欢呼// Fredrik

bash glob

9
推荐指数
2
解决办法
2088
查看次数

Python utf-8,如何对齐打印输出

我有一个包含日语字符和"正常"的数组.如何对齐这些打印输出?

#!/usr/bin/python
# coding=utf-8

a1=['??', '???', 'trazan', '??', '????']
a2=['dipsy', 'laa-laa', 'banarne', 'po', 'tinky winky']

for i,j in zip(a1,a2):
    print i.ljust(12),':',j

print '-'*8

for i,j in zip(a1,a2):
    print i,len(i)
    print j,len(j)
Run Code Online (Sandbox Code Playgroud)

输出:

??       : dipsy
???    : laa-laa
trazan       : banarne
??       : po
???? : tinky winky
--------
?? 6
dipsy 5
??? 9
laa-laa 7
trazan 6
banarne 7
?? 6
po 2
???? 12
tinky winky 11
Run Code Online (Sandbox Code Playgroud)

谢谢,// Fredrik

python unicode utf-8

7
推荐指数
1
解决办法
1896
查看次数

如何在YUV 4:2:0文件中找出分辨率和帧数?

如果我知道图像中有多少像素(亮度样本),如何找出YUV 4:2:0文件中的分辨率和帧数?

yuv

6
推荐指数
1
解决办法
9767
查看次数

找到未使用的结构和结构成员

前一段时间我们接管了遗留代码库的责任.

这个非常糟糕的结构/编写代码的一个怪癖是它包含许多非常庞大的结构,每个结构包含数百个成员.我们所做的许多步骤之一是清除尽可能多的未使用的代码,因此需要找到未使用的结构/结构成员.

关于结构,我想出了python,GNU Globalctags的组合来列出未使用的结构成员.

基本上,我正在做的是用来ctags生成一个标签文件,下面的python脚本解析该文件以找到所有结构成员,然后使用GNU Global在先前生成的全局数据库中查找以查看是否使用该成员在代码中.

这种方法存在许多相当严重的缺陷,但它解决了我们面临的问题,并为我们进一步清理提供了良好的开端.

必须有更好的方法来做到这一点!

问题是:如何在代码库中找到未使用的结构和结构成员?

#!/usr/bin/env python

import os
import string
import sys
import operator

def printheader(word):
    """generate a nice header string"""
    print "\n%s\n%s" % (word, "-" * len(word))

class StructFreqAnalysis:
    """ add description"""
    def __init__(self):
        self.path2hfile=''
        self.name=''
        self.id=''
        self.members=[]

    def show(self):
        print 'path2hfile:',self.path2hfile
        print 'name:',self.name
        print 'members:',self.members
        print

    def sort(self):
        return sorted(self.members, key=operator.itemgetter(1))

    def prettyprint(self):
        '''display a sorted list'''
        print 'struct:',self.name
        print 'path:',self.path2hfile
        for i in self.sort(): …
Run Code Online (Sandbox Code Playgroud)

c linux gcc

5
推荐指数
1
解决办法
1416
查看次数

如何切入awk

我有一个文件如下

100 sesCook=0ea4ce6259b087f5aec09934b3aab9fe4f0ee62d

100 sesCook=71e16fadaf9c5c57e7ef706a60f768bcffad7fc1

100 sesCook=a60cbaaed8349260783309a72c8bcdbd4d030255

100 sesCook=f8470d1272c4d9c1b69682260ed1b558c7a2dd55

101 sesCook=83b867a10e3d9d3b727d281548dcf6c29efb9382

101 sesCook=e7c4a834d57576d73e66883d7fbfbc8160125569
Run Code Online (Sandbox Code Playgroud)

我想要第一列原样.然而在第二列我想切割所有"sesCook=",只是有模式,例如:

100 0ea4ce6259b087f5aec09934b3aab9fe4f0ee62d

100 71e16fadaf9c5c57e7ef706a60f768bcffad7fc1

100 a60cbaaed8349260783309a72c8bcdbd4d030255

100 f8470d1272c4d9c1b69682260ed1b558c7a2dd55

101 83b867a10e3d9d3b727d281548dcf6c29efb9382

101 e7c4a834d57576d73e66883d7fbfbc8160125569
Run Code Online (Sandbox Code Playgroud)

我如何使用awk或cut做到这一点?

awk

4
推荐指数
1
解决办法
3005
查看次数

Python一行提取字段

输入:

$ ./ffmpeg -i test020.3gp                                                                                                               
ffmpeg version UNKNOWN, Copyright (c) 2000-2011 the FFmpeg developers
  built on May  5 2011 14:30:25 with gcc 4.4.3
  configuration: 
  libavutil    51.  2. 0 / 51.  2. 0
  libavcodec   53.  3. 0 / 53.  3. 0
  libavformat  53.  0. 3 / 53.  0. 3
  libavdevice  53.  0. 0 / 53.  0. 0
  libavfilter   2.  4. 0 /  2.  4. 0
  libswscale    0. 14. 0 /  0. 14. 0
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test020.3gp':
  Metadata:
    major_brand     : …
Run Code Online (Sandbox Code Playgroud)

python

4
推荐指数
1
解决办法
2291
查看次数

python处理二进制文件的性能

我正在尝试将YCbCr 文件 从 8 bpp 转换为 10 bpp。

到目前为止,我最好的方法仍然比最基本的 C 实现慢几个数量级。

C 中的朴素方法,运行时间约为 8 秒。相反,让代码在块上运行,可以将时间大大缩短到 1 秒以下。

我很好奇处理二进制文件的标准 python 可以获得什么样的性能。示例文件采用CIF 分辨率,与 1080p 的内容相比“小”。尽管我主要对标准 python 感兴趣,但也可以随意添加 numpy-suggestions。

测试文件可以从以下位置下载

http://trace.eas.asu.edu/yuv/foreman/foreman_cif.7z
Run Code Online (Sandbox Code Playgroud)

sha1sum正确的 10 位输出是

c511dabc793383f7fd0ed69b4bb9b9f89ef73b84
Run Code Online (Sandbox Code Playgroud)

Python:

#!/usr/bin/env python

import array

f_in = 'foreman_cif.yuv'
f_out = 'py_10bpp.yuv'

def bytesfromfile(f):
    while True:
        raw = array.array('B')
        raw.fromstring(f.read(8192))
        if not raw:
            break
        yield raw

with open(f_in, 'rb') as fd_in, \
        open(f_out, 'wb') as fd_out:

    for byte in bytesfromfile(fd_in):
        data = []
        for i …
Run Code Online (Sandbox Code Playgroud)

python

4
推荐指数
1
解决办法
1590
查看次数

用sed重命名多个文件

如何重命名标题Stargate SG-1 Season 01 Episode 01为"s01e01"的文件?当然可变编号.我已经有这样的事情:

for file in *.mkv; do mv "$file" "$(echo "$file" | sed -e "REGEX HERE")

我只需要执行我需要的sed命令.

谢谢

linux rename sed

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

python ×3

bash ×2

linux ×2

awk ×1

c ×1

gcc ×1

glob ×1

h.264 ×1

header ×1

ip-address ×1

rename ×1

sed ×1

unicode ×1

utf-8 ×1

yuv ×1