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