linux - 我想读取 "PUB"字符串,如果找到则读取下一个 50 个字符并追加到 excel 文件中

标签 linux bash shell unix sh

我正在尝试对 t1.txt 中有日期的位置进行编码,如下所示:

table             column size time
PUB.emp            20    1k   00.4
PUB.dept           10    3k   003
PUB.tst            34    1K   034

我很想出去

PUB.emp            20
PUB.dept           10
PUB.tst            34

基本上我需要搜索以“PUB”开头的行。如果找到,则读到下一个 20 个字符。并在两列中追加 excel 文件..

请帮忙..谢谢

最佳答案

使用awk:

awk '/^PUB/ {print substr($0, 0, 23)}' t1.txt
  • /^PUB/ 匹配以 PUB

  • 开头的记录
  • 对于匹配的记录,print substr($0, 0, 23) 打印前 23 个字符(前 3 个是 PUB)

示例:

% cat t1.txt 
table             column size time
PUB.emp            20    1k   00.4
PUB.dept           10    3k   003
PUB.tst            34    1K   034

% awk '/^PUB/ {print substr($0, 0, 23)}' t1.txt
PUB.emp            20  
PUB.dept           10  
PUB.tst            34  

关于linux - 我想读取 "PUB"字符串,如果找到则读取下一个 50 个字符并追加到 excel 文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47017443/

相关文章:

arrays - 为什么空数组在 bash 中被视为未设置?

windows - 使用 Windows 命令 shell 创建多个文件

c - C 中的 Sigaction 处理程序

bash - 通过读取文件作为 bash 中的输入来创建目录

linux - 使用ansible检查挂载点使用情况

linux - ubuntu 中 lxc 上的 Oracle

linux - 实时绘制多 channel 数据、平台/框架选择

linux - 如何对递归目录 grep 搜索 (grep -rl) 的结果进行排序?

linux - 寻找 。 -type -exec fgrep 问题

bash - 在后台使用 HERE_DOC 方法运行脚本