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 catenate file.txt与没有喂养它之前python!?。你需要read -A的,而不是read -a在ksh93和zsh。负下标zsh仅在和的最新版本中ksh93可用bash。在旧版本中,你可以使用${d: -2:1}
${d[@]: -2:1}是你的最后一句话。