我正在尝试替换Mac OS X上的Makefile中的字符串,以便交叉编译到iOS.该字符串嵌入了双引号.命令是:
sed -i "" 's|"iphoneos-cross","llvm-gcc:-O3|"iphoneos-cross","clang:-Os|g' Configure
Run Code Online (Sandbox Code Playgroud)
错误是:
sed: RE error: illegal byte sequence
Run Code Online (Sandbox Code Playgroud)
我试着逃避双引号,逗号,破折号和冒号,没有任何快乐.例如:
sed -i "" 's|\"iphoneos-cross\"\,\"llvm-gcc\:\-O3|\"iphoneos-cross\"\,\"clang\:\-Os|g' Configure
Run Code Online (Sandbox Code Playgroud)
我有一点时间调试这个问题.有谁知道如何sed打印非法字节序列的位置?或者有谁知道非法字节序列是什么?
被迫将CVS用于当前客户端并更改了远程仓库的地址.我可以找到更改本地代码中的远程地址的唯一方法是递归搜索和替换.
但是,使用sed命令我期望工作:
find ./ -type f -exec sed -i "s/192.168.20.1/new.domain.com/" {} \;
我收到每个文件的错误:
sed: 1: ".//file/path ...": invalid command code .
我试图逃脱sed比赛/替换的时期,但这并没有解决任何问题.
假设我使用zsh运行命令
echo "mysecret" > file
我可以使用以下命令轻松打印包含条目号的历史记录fc -l:
Run Code Online (Sandbox Code Playgroud)1 echo "mysecret" >| file
但是,如何从历史记录中轻松删除条目?
我在man zshbuiltins中找不到相应的段落.
我试图sed在二进制文件中进行替换,但我开始相信这是不可能的.基本上我想做的是类似于以下内容:
sed -bi "s/\(\xFF\xD8[[:xdigit:]]\{1,\}\xFF\xD9\)/\1/" file.jpg
Run Code Online (Sandbox Code Playgroud)
我希望实现的逻辑是:扫描二进制文件直到十六进制代码FFD8,继续读取直到FFD9,并且只保存它们之间的内容(丢弃之前和之后的垃圾,但包括FFD8并FFD9作为文件的保存部分)
有没有办法做到这一点?即使不使用sed?
编辑: 我只是在玩,并找到了最干净的方式去做IMO.我知道这个grep声明会贪婪.
hexdump -ve '1/1 "%.2x"' dirty.jpg | grep -o "ffd8.*ffd9" | xxd -r -p > clean.jpg
Run Code Online (Sandbox Code Playgroud) 如何在sh(0/sh/sh,而不是bash)中生成0-60之间的随机数?这是一个卫星箱,没有$RANDOM变量,和其他商品[cksum,od(od -vAn -N4 -tu4 </ dev/urandom)].
我想随机化一个crontab作业的时间.