![Grep 特定列](https://linux22.com/image/108002/Grep%20%E7%89%B9%E5%AE%9A%E5%88%97.png)
我有以下输出:
Created LabelNum Size Retention Hostname Location Label Plugin Expires Server
----------------------- -------- ------ --------- ----------------------- -------- --------------- -------------------- ----------------------- -------------------------------
2017-03-22 01:43:29 IST 9 1.0 GB DW vdp-dest.happycow.local Local A-1490127173251 Windows VMware Image 2017-03-26 01:42:53 IST DD - data-domain.happycow.local
我想 grep 列下的内容Expires
该列下的值会因客户端而异,因此这将是一个变量。
因此,无论有什么价值,我都希望看到输出。在这种情况下应该是:
Expires
-----------------------
2017-03-26 01:42:53 IST
答案1
看起来你有一个固定的列,然后它是:
cut -c121-143 file
编辑:
如果包含关键字“Expires”的列可能有所不同,则另一种方法是首先识别关键字的位置,然后从该位置回显并向前输入 23:
#! /bin/bash
# Syntax:
# ./cut_expires < file
#
# read first line from stdin
read LINE
# Remove chars from start to 'Expires' inclusive
PREFIX=${LINE/*Expires/}
EXPIRES=Expires
# Calculate where 'Expires' start
START=$(( ${#LINE}-${#PREFIX}-${#EXPIRES} ))
echo $EXPIRES
while read LINE; do
# echo from character pos $START and 23 characters
echo ${LINE:$START:23}
done