나는 다음과 같은 스크립트를 쓰고 있어요을 나오지? 참고 : $v
값을 제어 할 수 없습니다.예기치 않은 문자
1
A
답변
0
잘못된 방법으로 sed
을 사용하고 있습니다. 당신이 sed
내부 bash는 변수를 대체하려면 내가 위에서 보여 같은
$ v="1,pop";
$ cat file
1,pop
Suku
JohnGeorge
stackoverflow
serverfault
$ sed '/'$v'/d' file
Suku
JohnGeorge
stackoverflow
serverfault
$ sed "/"$v"/d" file
Suku
JohnGeorge
stackoverflow
serverfault
, 당신은 따옴표로 묶어야합니다. 또한 파일에 수정 사항을 쓰려면 sed
을 -i
과 함께 사용해야합니다. 스크립트
V = '1 팝업 "
나오지"/^$의 브이 $/{
D
} "일세/이러한 방식을 사용
+0
'sed/$ v/d 파일','sed '/'$ v '/ d'파일','sed '/''$ v'/ d "파일"은 완전히 동일합니다 왜냐하면 따옴표에있는 문자 중 쉘 메타 문자가 없기 때문에 모든 인용은 메타 문자의 해석을 억제하기 때문입니다. '$ v'가 (특정) 메타 문자를 포함하고 있다면, * 큰 따옴표로 묶기를 원할 것입니다. 따라서,'sed "/ $ v/d"file'이 권장되는 형식입니다. –
0
hashbang이 있어야 스크립트가 스크립트를 실행하는 방법을 알 수 있습니다. 당신의 명령이 실행 된 이야기
#!/bin/sh
그럼 당신은 얻을 것이다 ...
sed: 1: "1,pop/d": expected context address
.... :)
0
FILE1
관련 문제
- 1. 예기치 않은 문자 :
- 2. ANTLR : 예기치 않은 문자
- 3. JSON.parse : 예기치 않은 문자
- 4. com.fasterxml.jackson.core.JsonParseException : 예기치 않은 문자
- 5. 예기치 않은 문자 오류
- 6. JSON.parse 예기치 않은 문자
- 7. C# : '$'예기치 않은 문자
- 8. 연속 문자 뒤의 예기치 않은 문자
- 9. db4o 오류 "예기치 않은 문자 '@'"
- 10. JsonParseException 예기치 않은 문자 'a'
- 11. Jflex 예기치 않은 문자 오류
- 12. DotNetNuke - CS1056 : 예기치 않은 문자 ''
- 13. JSON.parse : 예기치 않은 문자 오류
- 14. "예기치 않은 공백 문자"undefined "?"
- 15. ExecJS :: ProgramError : 예기치 않은 문자 '#'
- 16. XQuery 파일 : 예기치 않은 문자 (__)
- 17. SyntaxError : JSON.parse : 예기치 않은 문자
- 18. Json 예기치 않은 문자 'q'가 발생했습니다.
- 19. Qt는 C++ XML 예기치 않은 문자
- 20. 함수 호출 후 Parsec 예기치 않은 문자
- 21. JFlex 오류 : 예기치 않은 문자 : YYINITIAL
- 22. JSON.parse : 양식을 제출하는 중 예기치 않은 문자
- 23. WCF - "예기치 않은 문자 'c'가 있습니다."
- 24. Sinatra 구문 오류 : 예기치 않은 문자
- 25. 정규식에서 예기치 않은 동작을 일으키는 개행 문자
- 26. while 루프 예기치 않은 (문자 - 정수 변환)
- 27. 예기치 않은 결과를주는 문자열의 각 문자 확인
- 28. 돼지 스키마 오류 예기치 않은 문자 ':'
- 29. 예기치 않은 문자 (<) 위치 0 자바
- 30. "@"문자 다음에 예기치 않은 "foreach"키워드가 있음
'sed' 명령이 기대하는 것은 무엇입니까? 쉘이'$ v/d' 확장을 끝내면'sed' 명령이 유효하지 않습니다. '$ v'에있는 것과 일치하는 줄을 지우고 싶을 수도 있습니다.이 경우 첫 번째 근사값으로'sed "/ $ v/d"'를 사용해야합니다. 'pop'을 포함하는 첫 줄에 1 행을 찾으려면'sed "1,/pop/d"를 생성하기 위해'$ v'의 값에 대한 작업을해야합니다. 다른 일을하고 싶다면 무엇을 원하는지 설명해야합니다. –