쉘 스크립트를 사용하여 txt 파일의 n 번째 줄을 가져와야합니다.비대화 형 쉘 스크립트를 사용하여 텍스트 파일의 n 번째 줄 가져 오기
- 가 나오지 : 나는 같은 명령을 사용하여 모든 조합을 시도했습니다 2 라인을 가져오고 변수
에 저장해야
처럼abc xyz
내 텍스트 파일입니다
- awk
- 헤드
- 꼬리
- 고양이
... 등
문제는 스크립트가 터미널에서, 모든 명령은 잘 작동 호출 할 때입니다. 하지만 내 자바 파일에서 동일한 셸 스크립트를 호출하면 이러한 명령이 작동하지 않습니다.
나는 그것이 비대화 형 쉘과 관련이 있다고 예상한다.
는PS 도와주세요 : 읽기 명령을 사용하여 내가 변수에 첫 선을 저장할 수 있어요.
read -r i<edit.txt
여기에서 "i"는 변수이고 edit.txt는 내 txt 파일입니다.
하지만 두 번째 줄을 얻는 방법을 알아낼 수 없습니다. 사전에
감사
편집 : 나는이 "비 작업"명령을 사용할 때 또한 스크립트, 종료, 그리고 나머지 명령 중 어느 것도 실행되지 않습니다.
이미 시도 명령 :
i=`awk 'N==2' edit.txt`
i=$(tail -n 1 edit.txt)
i=$(cat edit.txt | awk 'N==2')
i=$(grep "x" edit.txt)
자바 코드 :
try
{
ProcessBuilder pb = new ProcessBuilder("./myScript.sh",someParam);
pb.environment().put("PATH", "OtherPath");
Process p = pb.start();
InputStreamReader isr = new InputStreamReader(p.getInputStream());
BufferedReader br = new BufferedReader(isr);
String line ;
while((line = br.readLine()) != null)
System.out.println(line);
int exitVal = p.waitFor();
}catch(Exception e)
{ e.printStackTrace(); }
}
myscript.sh
read -r i<edit.txt
echo "session is : "$i #this prints abc, as required.
resFile=$(echo `sed -n '2p' edit.txt`) #this ans other similar commands donot do anything.
echo "file path is : "$resFile
가능한 이중 : http://stackoverflow.com/questions/6022384/bash-tool-to-get-nth-line-from-a-file – SuperSaiyan
나는 그의 명령을 시험해 본 결과, 터미널에서 잘 작동한다. . 하지만 자바 프로그램에서 스크립트를 호출 할 때가 아닙니다. – Singh