提取两个斜杠之间的文本并将其添加到行尾的制表符后

提取两个斜杠之间的文本并将其添加到行尾的制表符后

我有一个如下所示的文本文件:

data/CON/001/raw_series_ST_MC_REG_SM.nii
data/PAT/001/raw_series_ST_MC_REG_SM.nii

我想实现这样的目标:

data/CON/001/raw_series_ST_MC_REG_SM.nii TAB CON
data/PAT/001/raw_series_ST_MC_REG_SM.nii TAB PAT

当然是制表符(tab)代表空格。

谢谢您的帮助!

答案1

以下是一些选择:

awk '{split($0, a, /\//); print $0 "\t" a[2]}' file
awk -F/ -v OFS="\t" '{print $0, $2}' file

sed -r 's#^([^/]*/([^/]*)/.*)#\1\t\2#' file
sed 's#^\([^/]*/\([^/]*\)/.*\)#\1\t\2#' file
sed 'p; s#[^/]*/##; s#/.*##' file | paste - -

perl -F/ -lane 'print "$_\t$F[1]"' file

相关内容