linux cut的用法
問題:
路徑名為 /home/ lxy/ hhhhh-a.bbb.cc.d (格式類型固定)
其中 現(xiàn)在我只想要 a.bbb.cc 這一段。
其中 hhhhh- 格式固定?,a.bbb.cc.d 這一段長度有浮動(dòng),但前面的 a. 和后面的 .d 是固定的
解決方法:
1.如果/home/ lxy/ hhhhh-a.bbb.cc.d是文件中的字符串(即echo '/home/ lxy/ hhhhh-a.bbb.cc.d'>test.txt ),可以通過sed -n 's/.*hhhhh-\(.*\)\.d/\1/p' test.txt
?
2.以'-'為分隔符,用cut取第二個(gè)字段(只要路徑中不包含'-'即可):echo "/home/lxy/hhhhh-a.bbb.cc.d" | cut -d'-' -f2? 但該方法只能取出a.bbb.cc.d
?
3.為防止路徑中有'-',可以先取出文件名,在使用cut:echo "/home/lxy/hhhhh-a.bbb.cc.d" | awk -F/ '{print $NF}'| cut -d'-' -f2 但該方法只能取出a.bbb.cc.d
?
4.echo "/home/lxy/hhhhh-a.bbb.cc.d" | awk -F'-' '{print $2}' | cut -f 1-3 -d'.'
?
cut
用法:cut 選項(xiàng) 參數(shù)
?
選項(xiàng):
-d:指定字段的分隔符,默認(rèn)的字段分隔符為“TAB”;
-f:顯示指定字段的內(nèi)容;
-b:僅顯示行中指定字節(jié)范圍的內(nèi)容;
-c:僅顯示行中指定字符范圍的內(nèi)容;
-n:與“-b”選項(xiàng)連用,不分割多字節(jié)字符;
--complement:顯示指定字段以外的字段
--out-delimiter=<字段分隔符>:指定輸出內(nèi)容是的字段分割符;
?
指定范圍的參數(shù)意義:
N-:從第N個(gè)字節(jié)、字符、字段到結(jié)尾;
N-M:從第N個(gè)字節(jié)、字符、字段到第M個(gè)(包括M在內(nèi))字節(jié)、字符、字段;
-M:從第1個(gè)字節(jié)、字符、字段到第M個(gè)(包括M在內(nèi))字節(jié)、字符、字段。
?
參數(shù):可以是字符串,也可以是文件
?
舉栗:
使用-d指定字段分隔符,使用-f獲取指定字段
echo "/home/lxy/hhhhh-a.bbb.cc.d" |awk -F/ '{print $NF}'| cut -d'.' -f2? ? ? ?
輸出為:bbb
?
echo "/home/lxy/hhhhh-a.bbb.cc.d" | awk -F/ '{print $NF}'|cut -d'.' -f1,2? ? ? ?
輸出為:hhhhh-a.bbb
?
echo "/home/lxy/hhhhh-a.bbb.cc.d" | awk -F/ '{print $NF}'|cut -d'.' -f1,2,3
或echo "/home/lxy/hhhhh-a.bbb.cc.d" | awk -F/ '{print $NF}'|cut -d'.' -f1-3
輸出為hhhhh-a.bbb.cc
?
使用--complement參數(shù)提取指定字段以外的字段
echo "/home/lxy/hhhhh-a.bbb.cc.d" | awk -F/ '{print $NF}'|cut -d'.' -f1-3 --complement
輸出為 d
?
使用-c參數(shù)獲取指定字符范圍內(nèi)的內(nèi)容
echo "/home/lxy/hhhhh-a.bbb.cc.d" | awk -F/ '{print $NF}'|cut -c5-
h-a.bbb.cc.d
轉(zhuǎn)載于:https://www.cnblogs.com/mianbaoshu/p/10948593.html
總結(jié)
以上是生活随笔為你收集整理的linux cut的用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Scala 类
- 下一篇: ./ . 和#!/bin/bash 辨析