Bash脚本:存储awk字段以供以后使用

用户10482

我正在编写一个脚本,该脚本读取用户的输入,然后使用将其分为多个字段awk我希望在脚本的末尾使用这些字段之一,因此尝试将其存储在某些变量中但徒劳无功。

一种可能的解决方案是保存输入并awk最后再次使用它来处理,但是我想知道是否有任何方法可以将已处理的信息保留在某个变量中。

例如,

read -p "Enter args: "; echo -n $REPLY | awk '{ \*Do some stuff with fields*\; nth=$3}'

# More script

echo "Your 3rd argument was $nth"

但是上面的行不通。nth最后是空的(这意味着它在本地awk?)。

TIA

喷气凿

不确定为什么需要awk,但是可以将-a标志添加到其中read以获取数组。假设您正在谈论的字段/列由空格分隔/分隔。

read -rp "Enter args: " -a input

printf 'Your 3rd argument was %s\n' "${input[2]}"
  • 只要记住bash数组从零索引开始。

您可以遍历输入。

read -rp "Enter args: " -a input

for ((i=0; i<${#input[@]}; i++)); do
  printf 'Your %d argument was %s\n' "$i" "${input[$i]}"
done

或者像这样

read -rp "Enter args: " -a input

for i in "${!input[@]}"; do
  printf 'Your %d argument was %s\n' "$i" "${input[$i]}"
done

但是这是我会使用awk做的事情。

read -rp "Enter args: "

nth=$(awk '{\*Do some stuff with fields*\; print $3}' <<< "$REPLY")

printf 'Your 3rd argument was %s\n' "$nth"

仅在一个变量名中存储第二个字段和第三个字段。

read -rp "Enter args: "

nth=$(awk '{\*Do some stuff with fields*\; print $2, $3}' <<< "$REPLY")

printf 'The argument was %s\n' "$nth"

如果要在第二个字段和第三个字段中拆分一个不同的变量名。

read -rp "Enter args: "

nth=$(awk '{\*Do some stuff with fields*\; print $2, $3}' <<< "$REPLY")

printf 'Your 2nd argument was %s\nYour 3rd argument was %s\n' "${nth#* }" "${nth% *}"
  • "${nth#* }""${nth% *}"可以保存为独立的变量。

awk使用该命令打印所有字段的另一个答案,这$0read回到了我使用的第一个答案read -ra

read -rp "Enter args: "

read -ra fields  < <(awk '{\*Do some stuff with fields*\;print $0}' < <(printf '%s' "$REPLY"))

打印所有字段

printf '%s\n' "${fields[@]}"
  • 我对这个问题的第一篇文章/答案显示了如何遍历bash数组的各个字段以及如何对其进行索引。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

保存从awk获取的变量,以供以后使用(bash)

来自分类Dev

存储用户名以供以后使用

来自分类Dev

将值存储为变量以供以后使用CodedUI

来自分类Dev

将类型存储在变量中以供以后使用

来自分类Dev

如何存储缩放参数以供以后使用

来自分类Dev

VB6-加载/存储图像以供以后使用

来自分类Dev

如何存储参考DOM元素以供以后使用

来自分类Dev

Python-存储函数定义以供以后使用

来自分类Dev

存储对象以供以后编写函数时使用

来自分类Dev

jQuery JSON ajax结果存储以供以后使用

来自分类Dev

VB6-加载/存储图像以供以后使用

来自分类Dev

保存字段的表达式以供以后在Access中使用

来自分类Dev

如何在bash中保存功能以供以后使用?

来自分类Dev

存储用户输入以供以后检索

来自分类Dev

Javascript存储数字以供以后与Web存储一起使用

来自分类Dev

需要帮助使用jquery搜索XML文件并将结果存储在变量中以供以后使用

来自分类Dev

如何存储文本文件字符串以供以后在Java中使用

来自分类Dev

存储正则表达式中的反向引用以供以后使用

来自分类Dev

在R中,如何存储插图以供以后使用grid.arrange进行排列?

来自分类Dev

将函数结果存储到变量中以供以后在PHP中使用?

来自分类Dev

RShiny中的renderDataTable的总和列并将结果存储在dataframe中以供以后使用

来自分类Dev

如何存储Future <dynamic>数据以供以后在dart / Flutter中的程序中使用?

来自分类Dev

存储用户特定的连接字符串,以供以后在ASP.NET Web API中使用

来自分类Dev

存储函数以供以后使用/具有未定义属性的委托

来自分类Dev

将用户输入数据保存在kivy中并存储以供以后使用/分析python

来自分类Dev

如何存储已在命令行中键入的文本以供以后使用?

来自分类Dev

我可以在哪里存储iOS设备令牌以供以后使用?

来自分类Dev

在R中,如何存储插图以供以后使用grid.arrange进行排列?

来自分类Dev

获取html表的每一行的值并将其存储在变量中以供以后使用

Related 相关文章

  1. 1

    保存从awk获取的变量,以供以后使用(bash)

  2. 2

    存储用户名以供以后使用

  3. 3

    将值存储为变量以供以后使用CodedUI

  4. 4

    将类型存储在变量中以供以后使用

  5. 5

    如何存储缩放参数以供以后使用

  6. 6

    VB6-加载/存储图像以供以后使用

  7. 7

    如何存储参考DOM元素以供以后使用

  8. 8

    Python-存储函数定义以供以后使用

  9. 9

    存储对象以供以后编写函数时使用

  10. 10

    jQuery JSON ajax结果存储以供以后使用

  11. 11

    VB6-加载/存储图像以供以后使用

  12. 12

    保存字段的表达式以供以后在Access中使用

  13. 13

    如何在bash中保存功能以供以后使用?

  14. 14

    存储用户输入以供以后检索

  15. 15

    Javascript存储数字以供以后与Web存储一起使用

  16. 16

    需要帮助使用jquery搜索XML文件并将结果存储在变量中以供以后使用

  17. 17

    如何存储文本文件字符串以供以后在Java中使用

  18. 18

    存储正则表达式中的反向引用以供以后使用

  19. 19

    在R中,如何存储插图以供以后使用grid.arrange进行排列?

  20. 20

    将函数结果存储到变量中以供以后在PHP中使用?

  21. 21

    RShiny中的renderDataTable的总和列并将结果存储在dataframe中以供以后使用

  22. 22

    如何存储Future <dynamic>数据以供以后在dart / Flutter中的程序中使用?

  23. 23

    存储用户特定的连接字符串,以供以后在ASP.NET Web API中使用

  24. 24

    存储函数以供以后使用/具有未定义属性的委托

  25. 25

    将用户输入数据保存在kivy中并存储以供以后使用/分析python

  26. 26

    如何存储已在命令行中键入的文本以供以后使用?

  27. 27

    我可以在哪里存储iOS设备令牌以供以后使用?

  28. 28

    在R中,如何存储插图以供以后使用grid.arrange进行排列?

  29. 29

    获取html表的每一行的值并将其存储在变量中以供以后使用

热门标签

归档