回答:
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
した場合、3番目のソリューションも機能しruby
ます。
ruby
追加、bash
編集。
-
orで始まる場合(環境、シェル、またはシェルのコンパイル方法に応じて)、バックスラッシュ文字が含まれる場合はecho
、オプションではありません。なぜあなたはそれを与える前に何もcat
交わる必要file.txt
がないpython
!?。in およびのread -A
代わりに必要です。負の添字はで機能しますが、との最近のバージョンでのみ機能します。古いバージョンでは、使用することができますread -a
ksh93
zsh
zsh
ksh93
bash
${d: -2:1}
${d[@]: -2:1}
あなたの最後の文の意味だと思います。