【发布时间】:2021-12-19 19:44:39
【问题描述】:
我有这样的价值观
B146XYZ, G638XYZ, G488xBC
我必须编写一个 bash 脚本,当它看到逗号时,它必须删除逗号并添加 7 个空格,如果它看到逗号和空格或只是空格(没有标点符号),它必须添加 7 个空格使它们都固定长度。
if [[ $row = *’,’* ]]
then
first= “${ row%%,*}”
echo “${first } “
我试过但不明白如何为其余条件添加条件,特别是在 G488xBC 等单值条件下苦苦挣扎
【问题讨论】:
-
您不能在脚本(或大多数其他编程语言)中使用大引号。编辑代码时关闭“智能引号”。
-
请edit修复这些错误。我们需要一个minimal reproducible example,让我们自己看到您的问题。如果我们不知道问题是由问题中的拼写错误引起的还是由您的真实代码引起的,我们该如何回答这个问题?
-
IFS=', ' read -r -a words <<<"$line"; printf '%-7s\n' "${words[@]}" -
@user2708013, ...请注意,我不知道这是否真的是您需要的,但您没有提供 minimal reproducible example 来演示与输入样本配对的预期/期望输出,所以除了猜测您的意图之外,此问题中没有足够的信息来真正做任何事情。
-
请添加合适的 shebang (
#!/bin/bash),然后将您的脚本粘贴到 shellcheck.net 并尝试实施那里提出的建议。