我跑了echo "\oo" | tr "\oo" " "
,输出是:
\
\o
不是特殊字符,比如\n
,那为什么 也\
没有转换成空格呢?
我跑了echo "\oo" | tr "\oo" " "
,输出是:
\
\o
不是特殊字符,比如\n
,那为什么 也\
没有转换成空格呢?
我可能需要一些关于即时构建单行脚本的帮助。该脚本应该给我一个在当前系统上运行的服务列表。我想用 systemctl 来实现这一点。
当前的 oneliner 如下所示:
systemctl list-units --type service | grep -f /etc/update-motd.d/service.list
但是,此命令总是在列出的服务之间创建一个空行
smbd.service loaded active running Samba SMB Daemon
uuidd.service loaded active running Daemon for generating UUIDs
virtlogd.service loaded active running Virtual machine log manager
zabbix-agent.service loaded active running Zabbix Agent
我想删除空格。经过一些谷歌研究后,我找到了一些带有 tr 的解决方案(如 'tr -d ""' 或 'tr -s ""'),但这似乎不起作用。我什至用 grep 或 sed 尝试了一些解决方案,但没有一个对我有帮助。
编辑:我尝试了以下解决方案但没有成功:| grep“。” | sed '/^$/d | grep "\S"
一些帮助会很棒!谢谢
我有这样的 TSV 文件:
abc_1
def_2
ghi_3
jkl_4
mno_5
我想将其拆分为:
abc
def
ghi
jkl
mno
和
1
2
3
4
5
我怎么能得到那个?
我想使用 tr 命令在文本文件中将 al 字母替换为 mz 字母,并将 mz 字符替换为 al。(a 替换为 m,b 替换为 n,c 替换为 o,m 替换为 a,b 替换为 n,等等)我尝试了 `tr al mz | tr mz al 但它先用 mz 字母替换 al 字母,然后将所有字符替换为 al。
在我的文件中mytxt
:
field1 field2
------ -------
this are numbers 12345
this letters abc def ghi
假设我想将第一个字段存储在数组中:
i=0
while read line; do
field_one[$i]=$(echo $line | awk '{print $1}')
echo ${field_one[i]}
((i++))
done < mytxt
那会给我this
两次输出。
关于如何将它们存储在数组中并获得输出的任何想法:
this are numbers
this letters
我尝试过更改分隔符、压缩空格和使用sed
,但我被卡住了。任何提示将不胜感激。
我的最终目标是将这两个字段存储在一个数组中。