小编Sha*_*hop的帖子

为什么 wc 和 stat 对 /proc/[pid]/cmdline 产生不同的结果?

我试图了解原因wcstat报告不同的事情/proc/[pid]/cmdline

wc说我的 shellcmdline文件大小为 6 个字节:

$ wc --bytes /proc/$$/cmdline
6 /proc/10425/cmdline
Run Code Online (Sandbox Code Playgroud)

stat表示文件大小为 0 字节:

$ stat --format='%s' /proc/$$/cmdline
0
Run Code Online (Sandbox Code Playgroud)

file同意stat

$ file /proc/$$/cmdline
/proc/10425/cmdline: empty
Run Code Online (Sandbox Code Playgroud)

cat给出这个输出:

$ cat -vE /proc/$$/cmdline
-bash^@
Run Code Online (Sandbox Code Playgroud)

所有这些都在 Linux 上进行,而不是在任何其他 *nix 操作系统上进行。

stat和程序是否wc有不同的算法来计算文件中的字节数?

linux stat wc

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

用 sed 替换数字然后字符模式

我有一个如下所示的文件:

some
arbitrary number of
leading
lines
a prefix followed by wmd v0.0.0-20220406135915-ce5e3ee6c6bf
some
trailing
lines
Run Code Online (Sandbox Code Playgroud)

这只是文件外观的一个示例。对于我感兴趣的产品线,不变的部分是:

  • 总有wmd v0.0.0-, 其次是
  • 14 位数字,后跟
  • 连字符,后跟
  • 12 个字母数字字符

如何编写一个sed命令,允许我用20220406135915-ce5e3ee6c6bfshell 变量中的值替换该部分new_text

换句话说,如果new_text有值99999999999999-aaaaaaaaaaaa,我想找到将产生以下输出的命令<whatever goes here>部分:sed

$ sed -e "s/wmd v0.0.0-<whatever goes here>/wmd v0.0.0-$new_text/" my-file.txt
some
arbitrary number of
leading
lines
a prefix followed by wmd v0.0.0-99999999999999-aaaaaaaaaaaa
some
trailing
lines
Run Code Online (Sandbox Code Playgroud)

sed text-processing

2
推荐指数
1
解决办法
1111
查看次数

标签 统计

linux ×1

sed ×1

stat ×1

text-processing ×1

wc ×1