Linux bash脚本逐行删除部分字符串

标签 linux bash awk sed string-parsing

在 grep 命令输出后,我得到以下结果:

PAPU 0  
1000         GPRS ATTACH SUCC GB         2400       2382       2333       (10) 
1244         GPRS ATTACH FAIL GB         1216       1219       1252       (10) 
16000        GPRS ATTACH SUCC IU         986        986        1027       (10) 
16001        GPRS ATTACH FAIL IU         170        185        171        (10) 
2000         PDP-C ACTIVATION SUCC GB    5356       5138       5030       (10) 
2109         PDP-C ACTIVATION FAIL GB    13         15         54         (10) 
17000        PDP-C ACTIVATION SUCC IU    3637       3880       3887       (10) 
17001        PDP-C ACTIVATION FAIL IU    257        341        336        (10) 

现在我想将一些详细信息导出到数据库。但我尝试了很多变体,但都失败了。据我所知,要得到如下结果,我必须使用“sed”或“awk”。我怎样才能得到像下面的结果?

PAPU_0  
2400
1216
986
170
5356
13
3637
257

谢谢。

最佳答案

您可以通过以下步骤来完成:

  1. 首先读取数组中的所有行检查
  2. 迭代数组中的每一行

代码:

for i in "${check[@]}"
do
set  -- $i
# now you know that last 4th column contains the needed entries
# lets say you stored the length of array in var `length`
value=$(echo $(($length-3)))
echo $value
done

关于Linux bash脚本逐行删除部分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30479657/

相关文章:

Java:监听远程 Linux 服务器上的目录更改

c - 为什么不能使用 ** 获取 pthread_join 的返回值

regex - 如何在 `/` 之后获取此字符串的一部分?

linux - AWK 初级条形图/直方图

php - 在 Linux 中启用 apache 服务器的错误报告

linux - 将两行合并为一行并添加字符

Bash 配置文件从 Perl 脚本获取时抛出错误

linux - Bash 无法正确执行 '@' 字符

awk - 狂欢 : Finding average of entries from multiple columns after reading a CSV text file

linux - 使用 sed 查找和替换带有 2 个分隔符的字符的好方法