将 grep 的逐行输出转换为内联、空格分隔的格式

将 grep 的逐行输出转换为内联、空格分隔的格式
  • 我从 grep 中得到一些按行输出,例如......
value1
value2
value3
  • 为了填充 bash 脚本的变量,我需要将其转换为内联格式,就像('value1' 'value2' 'value3')这样。

实际上,有超过 40 个值,因此我正在寻找自动化的工作流程,而不仅仅是手动执行。

我该怎么办?

答案1

只需将您的输出传输到类似以下内容:

sed "s/$/\'/"  | sed "s/^/\'/" | tr  '\n' ' ' ;echo

答案2

  • 为了填充 bash 脚本的变量,我需要将其转换为内联格式,例如 ('value1' 'value2' 'value3') 。

要使用 bash 中命令输出的行填充索引数组变量grep,可以使用readarray(又名mapfile)shell 内置命令:

readarray -t arr < <(grep [OPTION...] PATTERNS [FILE...])

不需要添加文字引号。

相关内容