我有一个使用创建的非常大的硬盘的压缩原始图像cat /dev/sdx | xz > image.xz
。但是,在此操作之前,驱动器中的可用空间已清零,并且图像大部分由零字节组成。将此图像提取为稀疏文件的最简单方法是什么,以使零块不占用任何空间?
我正在编写一个 bash 脚本,其中包含一个简单的 if 部分,其中有两个条件:
if [[ -n $VAR_A ]] && [[ -n $VAR_B ]]; then
echo >&2 "error: cannot use MODE B in MODE A" && exit 1
fi
Run Code Online (Sandbox Code Playgroud)
一位高级工程师审查了我的代码并评论道:
当您可以简单地执行后续行中的两个命令时,请避免使用 && 。
他没有进一步解释。但出于好奇,我想知道这是否属实,以及避免使用&&
.
在 Ubuntu 20.04.3 上,调用ps -e -o args,pid,etime,%cpu,%mem --forest | egrep "firefox|PID" | grep -v grep
给出以下结果:
COMMAND PID ELAPSED %CPU %MEM
\_ /usr/lib/firefox/firefo 5730 01:58:40 20.8 4.9
| \_ /usr/lib/firefox/fi 5811 01:58:39 0.0 0.2
| \_ /usr/lib/firefox/fi 5841 01:58:39 0.1 0.7
| \_ /usr/lib/firefox/fi 5895 01:58:39 0.0 0.9
| \_ /usr/lib/firefox/fi 5926 01:58:39 4.3 2.0
| \_ /usr/lib/firefox/fi 6000 01:58:38 21.7 2.0
| \_ /usr/lib/firefox/fi 6094 01:58:32 4.2 0.3
| \_ /usr/lib/firefox/fi 7004 01:54:00 1.4 2.0
| \_ /usr/lib/firefox/fi …
Run Code Online (Sandbox Code Playgroud) 当十六进制数字相对较小时,我可以使用
echo 0xFF| mawk '{ printf "%d\n", $1}'
Run Code Online (Sandbox Code Playgroud)
将十六进制转换为十进制。
当十六进制数很大时,mawk
不再起作用,例如
echo 0x8110D248 | mawk '{ printf "%d\n", $1 }'
Run Code Online (Sandbox Code Playgroud)
输出2147483647
(这是错误的,2147483647
相当于0x7FFFFFFF
)。
如何转换更大的数字?
我有很多数字(每行一个数字,超过10M)需要处理,例如:每个0xFF\n 0x1A\n 0x25\n
. 如何让它在这种场合发挥作用?经过xargs
?有没有更好的方法呢?xargs
真的很慢。
我这台机器上有很多Settings.json
文件。
我使用以下方法获取所有这些人的列表:
find / -name "Settings.json" 2>&-
Run Code Online (Sandbox Code Playgroud)
但其中一些位于以Api
. 例如:
/ClubApi/Settings.json
/CrmApi/Settings.json
Run Code Online (Sandbox Code Playgroud)
我想将它们全部删除,除非它们属于以Api
. 我不能那样做。
我试过:
find / -name "Settings.json" 2>&- | xargs grep -v Api
Run Code Online (Sandbox Code Playgroud)
但它不适用于过滤路径Api
。
我怎样才能做到这一点?
我有一个文件user-history.txt
,文件内容采用以下模式。
user-1 6
user-1 7
user-2 6
user-2 7
user-2 8
user-3 6
user-3 7
user-3 9
user-4 6
Run Code Online (Sandbox Code Playgroud)
我想合并记录,以便每个用户仅被提及一次,并分别合并第二列。
user-1 6,7
user-2 6,7,8
user-3 6,7,9
user-4 6
Run Code Online (Sandbox Code Playgroud)
由于我还没有足够的经验,所以我无法解决这个问题。我一直在寻找其他解决方案,尽管存在类似的问题,但我还没有找到任何可以解决我的特定问题的解决方案。
如果 (G)AWK 不是用于此任务的最简单工具,我愿意接受其他解决方案。
详细的解释将不胜感激,这样我就可以提高我的知识。
我有很多小诗要编辑,如下所示:
\nIo avevo due sorelle,\nuna bionda e l\xe2\x80\x99altra mora,\ntutte e due leggiadre e belle\ne gentil come l\xe2\x80\x99aurora.\nma la bionda mi \xc3\xa8 sparita,\nse ne \xc3\xa8 andata all\xe2\x80\x99altra vita.\nmi hanno detto che lass\xc3\xb9\npi\xc3\xb9 risplende il suo bel viso\ndove \xc3\xa8 gioia ed \xc3\xa8 sorriso\nma non torner\xc3\xa0 mai pi\xc3\xb9.\ne la mora sta lontana,\nnella terra pascoliana.\ncolgo e bacio il primo fiore:\nil pensier quel bacio porta\nsu la viva e su la morta,\ntutte e due lo stesso amore.\n
Run Code Online (Sandbox Code Playgroud)\n意大利语语法规则规定,当一节经文在前一节经文中有一个句号之后开始时,第一个字母要大写。应该是这样(例如,请参见第 5 行句点后的大写字母)
\nIo avevo due …
Run Code Online (Sandbox Code Playgroud) 我有一个文件,其中包含彼此下的单词列表,其中这些单词属于一个句子,然后属于下一个句子的单词也彼此在下。与一个句子相关的单词块后跟一个空格,如下面的表示#2 所示
预期输出:(表示#1):
These are the words for sentence 1
These are the words for sentence 2
Run Code Online (Sandbox Code Playgroud)
预期输入:(表示#2):
These
are
the
words
for
sentence 1
these
are
the
words
for
sentence 2
Run Code Online (Sandbox Code Playgroud)
我尝试遵循这个问题,但是当我对不同的句子使用不同的单词时,它不起作用,那么如何在linux中将表示编号2更改为表示编号1?
我有一个文件夹~/TestFolder
。当前工作目录是主目录( ~
)。
我想输入部分命令,例如cd test
,并且我希望它自动填充以在按 Tab 时给出命令cd TestFolder
。
我怎样才能实现这个目标?
awk ×3
bash ×2
grep ×2
linux ×2
shell ×2
arch-linux ×1
autocomplete ×1
compression ×1
console ×1
disk-image ×1
files ×1
filter ×1
find ×1
numeric-data ×1
ps ×1
sed ×1
sparse-files ×1
terminal ×1
text ×1