小编I0_*_*_ol的帖子

如何在同一行上打印bash数组

我正在将文件类型数据读入一个bash数组,并需要在与空格相同的行上打印它的内容.

#!/bin/bash

filename=$1
declare -a myArray

readarray myArray < $1

echo "${myArray[@]}" 
Run Code Online (Sandbox Code Playgroud)

我尝试这甚至与回声-n标志仍然打印在换行,我错过了什么,会更好地工作printf的?

arrays bash printf echo

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

使用 sed 删除标点符号和制表符

我正在使用以下内容删除标点符号、制表符,并将文本文件中的大写文本转换为小写。

sed 's/[[:punct:]]//g' $HOME/file.txt | sed $'s/\t//g' | tr '[:upper:]' '[:lower:]'
Run Code Online (Sandbox Code Playgroud)

我是否需要使用这两个单独的sed命令来删除标点符号和制表符,还是可以使用单个sed命令完成?

另外,有人可以解释$第二个sed命令中正在做什么吗?没有它,该命令不会删除选项卡。我查看了手册页,但没有看到任何提到这一点的内容。

输入文件如下所示:

Pochemu oni ne v shkole?
Kto tam?
Otkuda eto moloko?
Chei chai ona p’et?
    Kogda vy chitaete?
    Kogda ty chitaesh’?
Run Code Online (Sandbox Code Playgroud)

macos bash sed tr

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

如何使用多个循环并将输出存储到多个变量?

我正在尝试使用名为itemlist.txt包含以下内容的文本文件:

http://example.com/item-a
http://example.com/item-b
http://example.com/item-c
http://example.com/item-d
http://example.com/item-e
Run Code Online (Sandbox Code Playgroud)

我尝试了很多不同的代码变体.有些人只返回项目,但不返回网址.我无法弄清楚如何$url正确分配.这是我最接近实现所需输出的方法.

#!/bin/bash

while read url; do 
for item in $(sed "s/http:\/\/example.com\///g"); do
echo $item $url; done
done < itemlist.txt
Run Code Online (Sandbox Code Playgroud)

所需的输出是:

item-a http://example.com/item-a
item-b http://example.com/item-b
item-c http://example.com/item-c
item-d http://example.com/item-d
item-e http://example.com/item-e
Run Code Online (Sandbox Code Playgroud)

但相反,我得到:

item-b http://example.com/item-a
item-c http://example.com/item-a
item-d http://example.com/item-a
item-e http://example.com/item-a
Run Code Online (Sandbox Code Playgroud)

有人可以说明如何正确地做到这一点?

bash

3
推荐指数
1
解决办法
72
查看次数

-bash:fork:无法分配内存

当我在bash shell中运行任何命令时,它返回:

$ free -m
-bash: fork: Cannot allocate memory
Run Code Online (Sandbox Code Playgroud)

然后,我尝试使用ps命令调试内存泄漏。它返回:

$ ps --sort -rss -eo rss,pid,command | head
RSS   PID COMMAND
518116 1310 /usr/bin/influxd -pidfile /var/run/influxdb/influxd.pid -config /etc/influxdb/influxdb.conf
281700 1912 /opt/td-agent/embedded/bin/ruby /usr/sbin/td-agent --log /var/log/td-agent/td-agent.log --daemon /var/run/td-agent/td-agent.pid
68260 23896 /home/alphauser/Envs/vogo-alpha/bin/python ./manage.py runserver 0.0.0.0:8008
43720 20201 python ./manage.py runserver 0.0.0.0:8008
36928  2223 rsyslogd
27432  1909 /opt/td-agent/embedded/bin/ruby /usr/sbin/td-agent --log /var/log/td-agent/td-agent.log --daemon /var/run/td-agent/td-agent.pid
25296 15009 /usr/bin/telegraf -pidfile /var/run/telegraf/telegraf.pid -config /etc/telegraf/telegraf.conf -config-directory /etc/telegraf/telegraf.d
24428 32529 /usr/sbin/grafana-server --pidfile=/var/run/grafana-server.pid --config=/etc/grafana/grafana.ini cfg:default.paths.data=/var/lib/grafana cfg:default.paths.logs=/var/log/grafana cfg:default.paths.plugins=/var/lib/grafana/plugins
20792 …
Run Code Online (Sandbox Code Playgroud)

linux memory bash ubuntu-16.04

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

标签 统计

bash ×4

arrays ×1

echo ×1

linux ×1

macos ×1

memory ×1

printf ×1

sed ×1

tr ×1

ubuntu-16.04 ×1