免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6313 | 回复: 7
打印 上一主题 下一主题

[文本处理] 关于制表符\t在${}中写法的疑问 [复制链接]

论坛徽章:
18
辰龙
日期:2014-05-21 21:01:4115-16赛季CBA联赛之深圳
日期:2016-12-23 13:51:3815-16赛季CBA联赛之北控
日期:2016-11-28 18:26:3815-16赛季CBA联赛之佛山
日期:2016-11-03 11:18:5815-16赛季CBA联赛之辽宁
日期:2016-07-10 16:09:4115-16赛季CBA联赛之江苏
日期:2016-02-20 23:09:202015亚冠之塔什干棉农
日期:2015-08-17 19:49:492015年亚洲杯之日本
日期:2015-04-30 01:24:342015年亚洲杯之约旦
日期:2015-04-01 00:37:182015年亚洲杯之沙特阿拉伯
日期:2015-03-02 15:55:40处女座
日期:2014-05-25 10:34:0020周年集字徽章-年
日期:2023-04-23 11:17:52
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-02-16 15:51 |只看该作者 |倒序浏览
大家好!
我有一个问题向大家请教。
请看以下一些命令及其执行结果。
  1. [enb@hp7 ~]$ line=$(echo -e "ABC\t123")
  2. [enb@hp7 ~]$ echo $line
  3. ABC 123
  4. [enb@hp7 ~]$ echo "$line"
  5. ABC     123
  6. [enb@hp7 ~]$
  7. [enb@hp7 ~]$ echo $line|hexdump -C
  8. 00000000  41 42 43 20 31 32 33 0a                           |ABC 123.|
  9. 00000008
  10. [enb@hp7 ~]$ echo "$line"|hexdump -C
  11. 00000000  41 42 43 09 31 32 33 0a                           |ABC.123.|
  12. 00000008
  13. [enb@hp7 ~]$ echo ${line##* }          (此处空白为空格键)
  14. ABC 123
  15. [enb@hp7 ~]$ echo ${line##*     }     (此处空白为按下ctrl+v键然后按tab键输入)
  16. 123
  17. [enb@hp7 ~]$
复制代码
假如有一个变量line,包含两个字符串ABC和123,中间以一个tab键分隔。
如果我想用${}来取得后面一个字符串123,那这个制表符应该怎么写呢?
我试了用\t是不行的,用按下ctrl+v键然后按tab键输入是可以的,但是由于显示为空白很容易和空格混淆,有没有其他办法呢?
谢谢大家!

论坛徽章:
28
2015年迎新春徽章
日期:2015-03-04 10:16:53午马
日期:2015-03-20 17:11:07亥猪
日期:2015-03-20 17:11:23戌狗
日期:2015-03-20 17:11:33酉鸡
日期:2015-03-20 17:11:47申猴
日期:2015-03-20 17:11:58未羊
日期:2015-03-20 17:12:10子鼠
日期:2015-03-20 17:12:23丑牛
日期:2015-03-20 17:12:40卯兔
日期:2015-03-20 17:12:51辰龙
日期:2015-03-20 17:13:00巳蛇
日期:2015-03-20 17:13:12
2 [报告]
发表于 2015-02-16 16:25 |只看该作者
仅就类似abc和123这两个字段来说,可以...
${line##*[^0-9]}

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
3 [报告]
发表于 2015-02-17 15:44 |只看该作者
回复 1# bikkuri

using the same way

$ line=$(echo -e "ABC\t123")

$ echo "$line"
ABC        123

$ echo ${line##*$(echo -e "\t")}
123


   

论坛徽章:
18
辰龙
日期:2014-05-21 21:01:4115-16赛季CBA联赛之深圳
日期:2016-12-23 13:51:3815-16赛季CBA联赛之北控
日期:2016-11-28 18:26:3815-16赛季CBA联赛之佛山
日期:2016-11-03 11:18:5815-16赛季CBA联赛之辽宁
日期:2016-07-10 16:09:4115-16赛季CBA联赛之江苏
日期:2016-02-20 23:09:202015亚冠之塔什干棉农
日期:2015-08-17 19:49:492015年亚洲杯之日本
日期:2015-04-30 01:24:342015年亚洲杯之约旦
日期:2015-04-01 00:37:182015年亚洲杯之沙特阿拉伯
日期:2015-03-02 15:55:40处女座
日期:2014-05-25 10:34:0020周年集字徽章-年
日期:2023-04-23 11:17:52
4 [报告]
发表于 2015-02-17 20:00 |只看该作者
哦,原来${}里面还可以用$()。
以前没见过这种用法,所以不知道。
学习了!

jason680 发表于 2015-02-17 15:44
回复 1# bikkuri

using the same way

论坛徽章:
1
拜羊年徽章
日期:2015-03-03 16:15:43
5 [报告]
发表于 2015-02-18 19:54 |只看该作者
回复 4# bikkuri


    还有个更丑陋的写法,echo ${line##*$'\t'}

论坛徽章:
18
辰龙
日期:2014-05-21 21:01:4115-16赛季CBA联赛之深圳
日期:2016-12-23 13:51:3815-16赛季CBA联赛之北控
日期:2016-11-28 18:26:3815-16赛季CBA联赛之佛山
日期:2016-11-03 11:18:5815-16赛季CBA联赛之辽宁
日期:2016-07-10 16:09:4115-16赛季CBA联赛之江苏
日期:2016-02-20 23:09:202015亚冠之塔什干棉农
日期:2015-08-17 19:49:492015年亚洲杯之日本
日期:2015-04-30 01:24:342015年亚洲杯之约旦
日期:2015-04-01 00:37:182015年亚洲杯之沙特阿拉伯
日期:2015-03-02 15:55:40处女座
日期:2014-05-25 10:34:0020周年集字徽章-年
日期:2023-04-23 11:17:52
6 [报告]
发表于 2015-02-18 23:28 |只看该作者

哦,第一次见,学习了。
不过这个$'\t'是怎么解释的?

hui_hoo 发表于 2015-02-18 19:54
回复 4# bikkuri

论坛徽章:
1
拜羊年徽章
日期:2015-03-03 16:15:43
7 [报告]
发表于 2015-02-19 20:54 |只看该作者
回复 6# bikkuri




   

这是bash文档

论坛徽章:
18
辰龙
日期:2014-05-21 21:01:4115-16赛季CBA联赛之深圳
日期:2016-12-23 13:51:3815-16赛季CBA联赛之北控
日期:2016-11-28 18:26:3815-16赛季CBA联赛之佛山
日期:2016-11-03 11:18:5815-16赛季CBA联赛之辽宁
日期:2016-07-10 16:09:4115-16赛季CBA联赛之江苏
日期:2016-02-20 23:09:202015亚冠之塔什干棉农
日期:2015-08-17 19:49:492015年亚洲杯之日本
日期:2015-04-30 01:24:342015年亚洲杯之约旦
日期:2015-04-01 00:37:182015年亚洲杯之沙特阿拉伯
日期:2015-03-02 15:55:40处女座
日期:2014-05-25 10:34:0020周年集字徽章-年
日期:2023-04-23 11:17:52
8 [报告]
发表于 2015-02-19 21:38 |只看该作者
多谢赐教!

hui_hoo 发表于 2015-02-19 20:54
回复 6# bikkuri
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP