답변:
다음 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있으면 옵션이 아닙니다. 할 이유는 사기꾼 필요 catenate file.txt으로 아무것도 에 공급하기 전에 python!?. 당신이 필요로 read -A하는 대신 read -a에 ksh93하고 zsh. 음의 아래 첨자 zsh는 최신 버전의 ksh93및 에서만 작동 bash합니다. 이전 버전에서는 다음을 사용할 수 있습니다${d: -2:1}
${d[@]: -2:1}당신이 마지막 문장에서 의미 하는 것 같아요 .