답변:
다음 cut
과 같이 입력 전후에 입력을 되돌립니다 rev
.
<infile rev | cut -d, -f2 | rev
산출:
d
i
n
cut
것은 파이썬과 같은 부정적인 필드 인덱스를 취할 수 없습니다.
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
또는 파이썬 사용 :
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
편집.
-
환경으로 시작 하거나 (환경, 쉘 또는 쉘이 컴파일 된 방법에 따라) 백 슬래시 문자를 포함 할 수 echo
있으면 옵션이 아닙니다. 할 이유는 사기꾼 필요 cat
enate file.txt
으로 아무것도 에 공급하기 전에 python
!?. 당신이 필요로 read -A
하는 대신 read -a
에 ksh93
하고 zsh
. 음의 아래 첨자 zsh
는 최신 버전의 ksh93
및 에서만 작동 bash
합니다. 이전 버전에서는 다음을 사용할 수 있습니다${d: -2:1}
${d[@]: -2:1}
당신이 마지막 문장에서 의미 하는 것 같아요 .