免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: zhaiyuzhen
打印 上一主题 下一主题

[文本处理] 【已解决】awk 取特定的行 [复制链接]

论坛徽章:
2
IT运维版块每日发帖之星
日期:2016-07-23 06:20:00数据库技术版块每日发帖之星
日期:2016-07-29 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-07-12 12:02 |显示全部楼层 |倒序浏览
本帖最后由 zhaiyuzhen 于 2017-04-26 16:57 编辑

locked.txt文件见最后。我想取trx_state:为LOCK WAIT的第一行、第六行。trx_state为RUNNING的部分不取。我度娘、谷歌了两天了,感觉自己缺乏逻辑性,所以特地求教大家,谢谢!
预期的结果为:
trx_id: 3377
trx_query: update test10.testid set name=' qqq' where id = 7
trx_id: 3378
trx_query: update test10.testid set name=' aaa' where id = 6
trx_id: 3387
trx_query: update test10.testid set name=' qq' where id = 9
trx_id: 3477
trx_query: update test10.testid set name=' qqqq' where id = 60

locked.txt内容:
*************************** 1. row ***************************
                    trx_id: 3377
                 trx_state: LOCK WAIT
               trx_started: 2016-07-11 15:56:46
     trx_requested_lock_id: 3377:6:3:5
          trx_wait_started: 2016-07-11 16:10:58
                trx_weight: 2
       trx_mysql_thread_id: 3
                 trx_query: update test10.testid set name=' qqq' where id = 7
       trx_operation_state: starting index read
         trx_tables_in_use: 1
         trx_tables_locked: 1
          trx_lock_structs: 2
     trx_lock_memory_bytes: 1184
           trx_rows_locked: 1
         trx_rows_modified: 0
   trx_concurrency_tickets: 0
       trx_isolation_level: REPEATABLE READ
         trx_unique_checks: 1
    trx_foreign_key_checks: 1
trx_last_foreign_key_error: NULL
trx_adaptive_hash_latched: 0
trx_adaptive_hash_timeout: 10000
          trx_is_read_only: 0
trx_autocommit_non_locking: 0
*************************** 2. row ***************************
                    trx_id: 3372
                 trx_state: RUNNING
               trx_started: 2016-07-11 15:54:24
     trx_requested_lock_id: NULL
          trx_wait_started: NULL
                trx_weight: 5
       trx_mysql_thread_id: 4
                 trx_query: NULL
       trx_operation_state: NULL
         trx_tables_in_use: 0
         trx_tables_locked: 0
          trx_lock_structs: 3
     trx_lock_memory_bytes: 360
           trx_rows_locked: 2
         trx_rows_modified: 2
   trx_concurrency_tickets: 0
       trx_isolation_level: REPEATABLE READ
         trx_unique_checks: 1
    trx_foreign_key_checks: 1
trx_last_foreign_key_error: NULL
trx_adaptive_hash_latched: 0
trx_adaptive_hash_timeout: 10000
          trx_is_read_only: 0
trx_autocommit_non_locking: 0
*************************** 3. row ***************************
                    trx_id: 3378
                 trx_state: LOCK WAIT
               trx_started: 2016-07-11 15:56:46
     trx_requested_lock_id: 3377:6:3:5
          trx_wait_started: 2016-07-11 16:10:58
                trx_weight: 2
       trx_mysql_thread_id: 3
                 trx_query: update test10.testid set name=' aaa' where id = 6
       trx_operation_state: starting index read
         trx_tables_in_use: 1
         trx_tables_locked: 1
          trx_lock_structs: 2
     trx_lock_memory_bytes: 1184
           trx_rows_locked: 1
         trx_rows_modified: 0
   trx_concurrency_tickets: 0
       trx_isolation_level: REPEATABLE READ
         trx_unique_checks: 1
    trx_foreign_key_checks: 1
trx_last_foreign_key_error: NULL
trx_adaptive_hash_latched: 0
trx_adaptive_hash_timeout: 10000
          trx_is_read_only: 0
trx_autocommit_non_locking: 0
*************************** 4. row ***************************
                    trx_id: 3387
                 trx_state: LOCK WAIT
               trx_started: 2016-07-11 15:56:46
     trx_requested_lock_id: 3377:6:3:5
          trx_wait_started: 2016-07-11 16:10:58
                trx_weight: 2
       trx_mysql_thread_id: 3
                 trx_query: update test10.testid set name=' qq' where id = 9
       trx_operation_state: starting index read
         trx_tables_in_use: 1
         trx_tables_locked: 1
          trx_lock_structs: 2
     trx_lock_memory_bytes: 1184
           trx_rows_locked: 1
         trx_rows_modified: 0
   trx_concurrency_tickets: 0
       trx_isolation_level: REPEATABLE READ
         trx_unique_checks: 1
    trx_foreign_key_checks: 1
trx_last_foreign_key_error: NULL
trx_adaptive_hash_latched: 0
trx_adaptive_hash_timeout: 10000
          trx_is_read_only: 0
trx_autocommit_non_locking: 0
*************************** 5. row ***************************
                    trx_id: 3477
                 trx_state: LOCK WAIT
               trx_started: 2016-07-11 15:56:46
     trx_requested_lock_id: 3377:6:3:5
          trx_wait_started: 2016-07-11 16:10:58
                trx_weight: 2
       trx_mysql_thread_id: 3
                 trx_query: update test10.testid set name=' qqqq' where id = 60
       trx_operation_state: starting index read
         trx_tables_in_use: 1
         trx_tables_locked: 1
          trx_lock_structs: 2
     trx_lock_memory_bytes: 1184
           trx_rows_locked: 1
         trx_rows_modified: 0
   trx_concurrency_tickets: 0
       trx_isolation_level: REPEATABLE READ
         trx_unique_checks: 1
    trx_foreign_key_checks: 1
trx_last_foreign_key_error: NULL
trx_adaptive_hash_latched: 0
trx_adaptive_hash_timeout: 10000
          trx_is_read_only: 0
trx_autocommit_non_locking: 0

论坛徽章:
2
IT运维版块每日发帖之星
日期:2016-07-23 06:20:00数据库技术版块每日发帖之星
日期:2016-07-29 06:20:00
2 [报告]
发表于 2016-07-12 12:47 |显示全部楼层
本帖最后由 zhaiyuzhen 于 2016-07-12 12:53 编辑

感谢楼上帮忙,确实可行。谢谢!
顺便解释一下,给后来的同学参考:
答主的思路是以“LOCK WAIT”为关键字,列出该关键字的前一行至后六行的内容,然后再用|grep -P 'trx_id|trx_query' 过滤一下,思路很巧妙!我不知道grep 还有A、B选项,基本功不扎实啊!

论坛徽章:
2
IT运维版块每日发帖之星
日期:2016-07-23 06:20:00数据库技术版块每日发帖之星
日期:2016-07-29 06:20:00
3 [报告]
发表于 2016-07-15 17:39 |显示全部楼层
本帖最后由 zhaiyuzhen 于 2016-07-15 17:48 编辑

呵呵,各路大神各显神通啊。只是现在的2楼非当时回复我的那个二楼(当然,现在二楼兄弟也能简单明了的解决我的问题。不知道回复还可以删掉的,为了表示感谢把现在二楼的答案也贴上吧:awk -vRS='\\*+' -F'\n' '/LOCK WAIT/&&$0=$2"\n"$9',免得哪天他的回复也被删了。)。忘了当时那位兄弟的ID了,为了感谢他,把他当时的答案附上吧:
cat locked.txt|grep -B1 -A6 ' trx_state: LOCK WAIT'|grep -P 'trx_id|trx_query'。
其他答案虽各有妙招,但是我还是比较佩服当时的那位兄弟,我认为他的答案最简洁明了。可能是先入为主吧,谢谢各位!

同时也回复版主一声:locked文件确实是检查mysql事物锁的,当时没有想到过滤一下,直接简单粗暴的select * from information_schema.innodb_trx\G。当然现在mysql默认已经是自动提交的,大多数这个结果都是空的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP