标签: xargs

使用grep搜索文件中的十六进制字符串

我一直在努力让这个工作起来.有谁知道如何获取grep或类似的东西来检索文件中的十六进制字符串的偏移量?

我有一堆hexdumps我需要检查字符串,然后再次运行并检查值是否已更改.

我已经尝试过hexdump和dd,但问题是因为它是一个流,我丢失了文件的偏移量.

有人必须遇到这个问题和解决方法.我能做什么?

为了澄清,我有一系列来自GDB的转储内存区域.

我试图通过搜索存储号码的所有位置缩小数字,然后再次执行并检查新值是否存储在同一存储位置.

我无法做grep做任何事情,因为我正在寻找十六进制值,所以我一直尝试过(就像一个bazillion,大致)它不会给我正确的输出.

十六进制转储只是完整的二进制文件,paterns在浮动值范围内大到8个?字节?

模式并没有包裹我所知道的线条.我知道它改变了什么,我可以做同样的过程并比较列表以查看哪个匹配.十六进制转储通常最终(总共)100兆位.

Perl可能是一个选项,但在这一点上,我认为我对bash及其工具缺乏了解是罪魁祸首.

它有点难以解释我得到的输出,因为我真的没有得到任何输出..

我期待(并期待)一些事情:

<offset>:<searched value>
Run Code Online (Sandbox Code Playgroud)

这是我通常会得到的非常好的标准输出 grep -URbFo <searchterm> . > <output>

问题是,当我尝试搜索十六进制值时,我遇到的问题是如果只是不搜索十六进制值,所以如果我搜索00我应该得到一百万次点击,因为那总是空白空间,而是搜索00为文本,所以十六进制,3030.任何想法?

我可以强制它通过hexdump或链接的某些东西,但因为它的流不会给我它发现匹配的偏移量和文件名.

使用grep -b选项似乎也不起作用,我确实尝试了所有看起来对我的情况有用的标志,但没有任何效果.

使用xxd -u /usr/bin/xxd作为一个例子,我得到一个输出将是有益的,但我不能使用搜索..

0004760: 73CC 6446 161E 266A 3140 5E79 4D37 FDC6  s.dF..&j1@^yM7..
0004770: BF04 0E34 A44E 5BE7 229F 9EEF 5F4F DFFA  ...4.N[."..._O..
0004780: FADE 0C01 0000 000C 0000 0000 0000 0000  ................
Run Code Online (Sandbox Code Playgroud)

不错的输出,就像我看到的那样,但在这种情况下它对我不起作用..

这是我发布以来我尝试过的一些事情:

xxd -u /usr/bin/xxd | grep 'DF'
00017b0: 4010 8D05 0DFF FF0A 0300 53E3 0610 A003  @.........S..... …
Run Code Online (Sandbox Code Playgroud)

bash awk grep dd xargs

27
推荐指数
6
解决办法
9万
查看次数

如何在xargs中使用别名命令?

我的.aliases中有以下别名:

alias gi grep -i
Run Code Online (Sandbox Code Playgroud)

我想foo在所有bar名称中包含字符串的文件中查找不区分大小写的内容:

find -name \*bar\* | xargs gi foo
Run Code Online (Sandbox Code Playgroud)

这就是我得到的:

xargs: gi: No such file or directory
Run Code Online (Sandbox Code Playgroud)

有没有办法在xargs中使用别名,或者我是否必须使用完整版本:

   find -name \*bar\* | xargs grep -i foo
Run Code Online (Sandbox Code Playgroud)

注意: 这是一个简单的例子.此外,gi我有一些非常复杂的别名,我不能轻易手动扩展.

编辑: 我用过tcsh,所以请指明答案是否是特定于shell的.

linux tcsh xargs

26
推荐指数
4
解决办法
8391
查看次数

如何在SINGLE行中输出用引号括起来的文件名?

我想以下面的方式输出文件夹中的项目列表:

"filename1"  "filename2" "file name with spaces" "foldername" "folder name with spaces"
Run Code Online (Sandbox Code Playgroud)

换句话说,项目名称必须在一行中,用引号(单引号或双引号)括起并用空格分隔.

我知道

find . | xargs echo
Run Code Online (Sandbox Code Playgroud)

打印输出在一行,但我不知道如何在每个项目名称周围添加引号.

此代码是bsh脚本的一部分.因此,解决方案可以是一组命令,并使用临时文件来存储中间输出.

非常感谢您的任何建议.

干杯,安娜

unix bash find xargs

26
推荐指数
6
解决办法
3万
查看次数

批量重命名命令行和Xargs中的文件

所以,我有以下结构:

.
..
a.png
b.png 
c.png
Run Code Online (Sandbox Code Playgroud)

我跑了一个命令来调整它们的大小

ls | xargs -I xx convert xx -resize xx.jpg
Run Code Online (Sandbox Code Playgroud)

现在我的目录看起来像这样

.
..
a.png.jpg
a.png
b.png.jpg
b.png
c.png.jpg
c.png
Run Code Online (Sandbox Code Playgroud)

第一个问题是,我如何重命名文件,以便我可以只有一个扩展名.不是两个.(基本上,我该如何清理原来的错误)?

第二个问题是,在将来,使用xargs,如何将文件的扩展名更改为第二个命令?

unix linux shell command-line xargs

26
推荐指数
5
解决办法
3万
查看次数

Bash - 如何解压缩管道zip文件(来自"wget -qO-")

有关如何解压缩管道zip文件的任何想法,如下所示:

wget -qO- http://downloads.wordpress.org/plugin/akismet.2.5.3.zip
Run Code Online (Sandbox Code Playgroud)

我希望将文件解压缩到一个目录,就像我们以前使用普通文件一样:

wget -qO- http://downloads.wordpress.org/plugin/akismet.2.5.3.zip | unzip -d ~/Desktop
Run Code Online (Sandbox Code Playgroud)

bash wget unzip xargs

24
推荐指数
6
解决办法
3万
查看次数

如何在xargs -0之后执行多个命令?

find . -name "filename including space" -print0 | xargs -0 ls -aldF > log.txt
find . -name "filename including space" -print0 | xargs -0 rm -rdf
Run Code Online (Sandbox Code Playgroud)

是否可以将这两个命令合并为一个,这样只能完成1个查找而不是2个?

我知道xargs -I可能有办法做到这一点,这可能会导致文件名(包括空格)时出错.任何指导都非常感谢.

bash find xargs

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

ls:使用xargs时由信号13终止

我正在使用以下命令删除文件夹中的四个最大文件:

find "/var/www/site1/" -maxdepth 1 -type f | xargs ls -1S | head -n 4 | xargs -d '\n' rm -f
Run Code Online (Sandbox Code Playgroud)

它工作正常,但不时抛出破裂的管道错误:

xargs: ls: terminated by signal 13
Run Code Online (Sandbox Code Playgroud)

find xargs

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

什么时候应该优先选择xargs而不是while-read循环?

xargs广泛用于shell脚本; 通常很容易在bash中使用while read -r; do ... donewhile read -ar; do ... done循环重构这些用法.

什么时候应该xargs首选,何时应该优先使用while-read循环?

linux bash xargs

23
推荐指数
4
解决办法
9054
查看次数

有没有办法用pip卸载多个包?

我试图删除所有已安装的"pyobjc-framework"-prefixed包.我尝试过以下方法:

% pip freeze | grep pyobjc-framework | xargs pip uninstall 
Run Code Online (Sandbox Code Playgroud)

但这个barfs因为每个pip卸载需要确认(也许一种方法绕过这将是一个解决方案).

在我必须分解并手动卸载每个这些之前请帮忙!没有人想要那样.

python pip xargs

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

如何在每个xargs命令之间休息1秒?

例如,如果我执行

ps aux | awk '{print $1}' | xargs -I {} echo {}
Run Code Online (Sandbox Code Playgroud)

我想让shell在每个之间睡1秒钟echo.

如何更改shell命令?

linux bash shell xargs

19
推荐指数
1
解决办法
8968
查看次数

标签 统计

xargs ×10

bash ×6

linux ×4

find ×3

shell ×2

unix ×2

awk ×1

command-line ×1

dd ×1

grep ×1

pip ×1

python ×1

tcsh ×1

unzip ×1

wget ×1