回答:
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 -aksh93zshzshksh93bash${d: -2:1}
${d[@]: -2:1}あなたの最後の文の意味だと思います。