我试图创建脚本,我可以输入一组前缀,然后将列出的前缀(包括网络/主机/广播)内的所有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的系统中使用(是的..我知道..)
假设我有一个包含以下jpeg文件的文件夹:
adfjhu.jpg Afgjo.jpg
Bdfji.jpg bkdfjhru.jpg
Cdfgj.jpg cfgir.jpg
Ddfgjr.jpg dfgjrr.jpg
Run Code Online (Sandbox Code Playgroud)
如何删除或列出以大写字母开头的文件?
这可以用组合来解决find,grep并xargs.
但是在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
我有一个包含日语字符和"正常"的数组.如何对齐这些打印输出?
#!/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,GNU Global和ctags的组合来列出未使用的结构成员.
基本上,我正在做的是用来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) 我有一个文件如下
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做到这一点?
输入:
$ ./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) 我正在尝试将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) 如何重命名标题Stargate SG-1 Season 01 Episode 01为"s01e01"的文件?当然可变编号.我已经有这样的事情:
for file in *.mkv; do mv "$file" "$(echo "$file" | sed -e "REGEX HERE")
我只需要执行我需要的sed命令.
谢谢