小编cuo*_*glm的帖子

为什么使用 shell 循环处理文本被认为是不好的做法?

在 POSIX shell 中使用while 循环来处理文本通常被认为是不好的做法吗?

正如Stéphane Chazelas 所指出的,不使用 shell 循环的一些原因是概念可靠性易读性性能安全性

这个答案解释了可靠性易读性方面:

while IFS= read -r line <&3; do
  printf '%s\n' "$line"
done 3< "$InputFile"
Run Code Online (Sandbox Code Playgroud)

为了性能,从文件或管道读取时,while循环和读取非常慢,因为内置read shell一次读取一个字符。

怎么样的概念安全性方面?

shell text-processing

241
推荐指数
4
解决办法
5万
查看次数

在bash中将参数字符串转换为整数

试图弄清楚如何将参数转换为整数以执行算术运算,然后将其打印出来,例如 for addOne.sh

echo $1 + 1
>>sh addOne.sh 1
prints 1 + 1
Run Code Online (Sandbox Code Playgroud)

bash

125
推荐指数
4
解决办法
57万
查看次数

在 htop 正常运行后 (!) 是什么意思

我正在分析一些网站负责人,htop并注意到以下内容

Uptime: 301 days(!), 23:47:39
Run Code Online (Sandbox Code Playgroud)

这是什么(!)意思?

htop

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

仅使用“tr”将多个空格替换为一个

我有一个文件,f1.txt

ID     Name
1      a
2         b
3   g
6            f
Run Code Online (Sandbox Code Playgroud)

空格数固定。仅使用一个空格替换所有空格的最佳方法是什么tr

这是我到目前为止:

cat f1.txt | tr -d " "
Run Code Online (Sandbox Code Playgroud)

但输出是:

IDName
1a
2b
3g
6f
Run Code Online (Sandbox Code Playgroud)

但我希望它看起来像这样:

ID Name
1 a
2 b
3 g
6 f
Run Code Online (Sandbox Code Playgroud)

请尽量避免sed

shell cut tr

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

为什么 Linux 内核被称为“映像”?

我经常听到人们将 Linux 内核称为 Linux 内核映像,而且我似乎无法在任何搜索引擎上找到有关为什么将其称为映像的答案。

当我想到图像时,我只能想到两件事,要么是磁盘副本,要么是照片。它肯定不是照片图像,为什么它被称为图像?

kernel linux-kernel

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

如何在 Linux/AIX 中使用 tail -0f 拖尾多个文件

我尝试使用该选项拖尾两个文件:

tail -0f file1.log -0f file2.log
Run Code Online (Sandbox Code Playgroud)

在 Linux 中,我看到一个错误“tail : 一次只能处理一个文件”。

在 AIX 中,我看到错误为“无效选项”。

当我使用时,这很好用:

tail -f file1 -f file 2
Run Code Online (Sandbox Code Playgroud)

在 Linux 中,但不在 AIX 中。

我希望能够使用AIX/Linux-0f-f在 AIX/Linux 中拖尾多个文件

multitail 在这些操作系统中的任何一个中都无法识别。

tail

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

如果未定义变量,请避免运行脚本

我有一个脚本看起来像:

c=0
for f in */*; do
cp -v "$f" "/myhome/CE$(printf '%0*d' 2 $BATCHNUM)-new-stuctures_extracted/test-$(printf '%0*d' 5 $c)"
c=$((c=c+1))
done
Run Code Online (Sandbox Code Playgroud)

但是,用户必须提供一个变量调用 BATCHNUM,否则我需要强制此脚本停止运行。如果我可以强制调用此脚本的脚本也停止(甚至调用调用此脚本的 #2 脚本的 #1 脚本)会更好。

shell bash shell-script

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

为什么 uniq 不够独特以至于还有 uniq --unique?

以下是来自pastebin的随机文件的命令:

wget -qO - http://pastebin.com/0cSPs9LR | wc -l
350
wget -qO - http://pastebin.com/0cSPs9LR | sort -u | wc -l
287
wget -qO - http://pastebin.com/0cSPs9LR | sort | uniq | wc -l
287
wget -qO - http://pastebin.com/0cSPs9LR | sort | uniq -u | wc -l
258
Run Code Online (Sandbox Code Playgroud)

手册页不清楚-u标志在做什么。有什么建议吗?

uniq

40
推荐指数
4
解决办法
8494
查看次数

`tail -f` 比 `less +F` 更有效吗?

这篇文章指出了使用less +Fover 的一些原因tail -f。大多数原因与功能有关,而不是技术原因:less +F可以突出显示、搜索、浏览文件。

怎么样的技术原因是什么?

AFAIK,less使用轮询每一秒更新文件,同时tail,如POSIX定义使用一个循环,1秒睡觉和副本可用任何字节。这已经足够了,但 POSIX 还鼓励实现使用更有效的方法。至少GNU tail使用inotify,所以效率更高。

less 还将文件内容保存在内存中,因此对于大文件(如几 GB),它会降低您的计算机速度。

那么,还有其他技术原因可以使用tail -foverless +F吗?

less tail

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

unix/Linux 中的 &gt;&gt; 符号和 &gt;&amp; 是什么?

我有一个 CRONTAB 条目,如下所示。有人能告诉我下面的语句到底在做什么吗?

1 0 * * * /vol01/sites/provisioning/MNMS/45627/45627.sh1 >> /vol01/sites/provisioning/MNMS/45627/output/cron.log 2>&1
Run Code Online (Sandbox Code Playgroud)

shell-script

33
推荐指数
2
解决办法
19万
查看次数

标签 统计

shell ×3

bash ×2

shell-script ×2

tail ×2

cut ×1

htop ×1

kernel ×1

less ×1

linux-kernel ×1

text-processing ×1

tr ×1

uniq ×1