Answers:
前后反向输入cut
用rev
:
<infile rev | cut -d, -f2 | rev
输出:
d
i
n
cut
,不能接受负字段索引(如Python)。
尝试使用awk做到这一点:
awk -F, '{print $(NF-1)}' file.txt
或使用perl:
perl -F, -lane 'print $F[-2]' file.txt
或使用红宝石(感谢manatwork):
ruby -F, -lane 'print $F[-2]' file.txt
或使用bash
(感谢manatwork):
while IFS=, read -ra d; do echo "${d[-2]}"; done < file.txt
或者使用python:
cat file.txt |
python -c $'import sys\nfor line in sys.stdin:\tprint(line.split(",")[-2])'
bash
不需要为此固定列数:while IFS=, read -ra d; do echo "${d[-2]}"; done < file.txt
。
perl
与ruby
。
ruby
添加,bash
编辑。
-
或(取决于环境,shell或shell的编译方式)开头,则可能包含反斜杠字符,则echo
不是一个选择。为什么你需要CON cat
enate file.txt
与没有喂养它之前python
!?。你需要read -A
的,而不是read -a
在ksh93
和zsh
。负下标zsh
仅在和的最新版本中ksh93
可用bash
。在旧版本中,你可以使用${d: -2:1}
${d[@]: -2:1}
是你的最后一句话。