2012-10-22 3 views
0

커팅 할 열과 함께 '마지막'명령에서 잘라내도록 사용자에게 묻습니다. 또한 'tr'을 사용하여 공백의 모든 차이점을 수정하려고합니다. 이것은 내가 가지고있는 코드입니다 :마지막 커팅 명령을 실행하기 위해 사용자를 통한 입력 받기

echo -n "What rows and columns would you like to cut: " 
read num_int 
read num_row 
read num_list 
last $num_int 
cut -f $num_row 
tr -d $num_list 

커맨드 라인에서 실행할 때 나는 프롬프트를 얻습니다. 그래서 나는 입력 한 다음 잘라 내기 할 숫자를 넣습니다. 그런 다음 입력을 다시 눌러 화면에 인쇄되지만 실행 된 스크립트에서 벗어나지 않는 정보 목록을 얻습니다. 이 스크립트를 설정하는 더 좋은 방법이 있습니까? 화면에 에코가 표시되는 샘플 데이터는 다음과 같습니다.

slater pts/2  78.189.121.247 Sat Sep 1 23:21 - 23:27 (00:05)  
slater pts/3  77.189.121.247 Sat Sep 1 23:09 - 23:21 (00:12)  
slater pts/2  76.189.121.247 Sat Sep 1 22:59 - 23:09 (00:10)  
slater pts/2  74.189.121.247 Sat Sep 1 22:51 - 22:56 (00:05)  
pint  pts/2  74.189.121.247 Sat Sep 1 22:49 - 22:51 (00:01)  
terry pts/2  74-119-247-134.r Sat Sep 1 19:08 - 19:09 (00:00)  
+0

출력을 어떻게 표시 하시겠습니까? 예를 들어 줄 수 있습니까? –

답변

2

귀하의 요구 사항을 충족합니까?

read -p "What row and column integers would you like to cut >>> " col row 
last | awk -v col=$col -v row=$row 'NR==row{print $col}' 
+1

그게 내가 찾고있는거야. 나는 처음에는 awk를 사용해야했다. 고맙습니다. – demet8

0

여기에서 수행하려는 작업을 실제로 이해하지 못합니다. 그러나 나는 당신이 파이프에 서로 그 명령을 원하는 확신 해요 그래서 그들은 서로의 출력에서 ​​작동 :

last | cut -f $num_row | tr -d $num_list 

last $num_int 아마 당신이하고 싶은 일을하지 않습니다. last은 인수로 사용자 이름을 필요로합니다. 출력의 마지막 $num_int 라인을 얻으려면, tail (또는 어쩌면 head를) 시도 :

last | tail -n $num_int | cut -f $num_row | tr -d $num_list 

tr 명령 나는 약, 특히 혼란 스러워요. 그걸로 무엇을 하려니?

+0

그냥 'tr.'을 사용하여 인쇄되지 않는 문자를 제거하고 싶습니다. – demet8

+0

도움을 주신 John 께 감사드립니다. – demet8

관련 문제