출력을 파일로 리디렉션 할 수 없습니다.

GeorgeOfTAC
tail -f /var/log/kern.log | sed 's/.* //'

터미널에 출력을 제공하지만 내가 할 때

 tail -f /var/log/kern.log | sed 's/.* //' >> logfile.txt

파일에서 아무것도 찾을 수 없습니다. 커널 모듈에서 실행 파일의 이름을 인쇄합니다. 예 : 내가 실행하는 경우 ls, kern.log보유하고 /bin/ls있지만, 타임 스탬프 등 메신저 경로 만 추출 위를 시도하고 한 내가 출력 파일로 리디렉션하지 않고 실행으로 작동 그래서, 나는 또한 시도와 함께 tee logfile.txt. 여전히 아무것도 없습니다. 도와주세요.

로저시나 손

sed 명령의 문제는 "뒤에 공백이 오는 모든 것"( ". *")을 취하고 "nothing"으로 대체한다는 것입니다. 해야 할 일은 모든 것을 첫 번째 공간까지 가져와 저장 한 다음 모든 것을 저장된 비트로 교체하는 것입니다. 입력 문자열의 일부를 저장하려면 정규식의 해당 부분을 괄호로 묶습니다. (.*)그런 다음을 사용하여 대체 문자열에 넣을 수 있습니다 \1.

그러나 그것보다 더 많은 것이 있습니다. sed는 탐욕 스럽습니다-가능한 한 많이 잡을 것입니다. 따라서 "abc def ghi"와 같은 문자열이 있으면 "abc def"뒤에 공백이있는 것을 볼 수 있으며 모든 것을 잡습니다. 그래서 질문은, 첫 번째 공간까지 첫 번째 부분을 어떻게 얻습니까?

구분 기호 (공백)가 아닌 뒤에 공백이 오는 모든 문자를 선택할 수 있습니다. 따라서 위의 예에서 cd 사이의 문자 는 공백이므로 선택되지 않고 abc 부분 만 선택 됩니다.

따라서 최종 결과는 다음과 같습니다.

sed "s/\([^ ]*\) .*/\1/"`

여기서 일치하는 패턴은 "공백이 아닌 모든 것,있는만큼 많은 것"(이를 저장하기 위해 괄호 안에 있음) "([^ ]\*)", 단일 공간 " "및 기타 모든 것으로 구성 ".*"됩니다. 대체 문자열 "\1"은 "첫 번째 괄호 집합의 정규식 부분과 일치하는 항목"입니다.

내가 한 빠른 테스트는 다음과 같습니다.

Testing: cat testout.txt
cat: testout.txt: No such file or directory

Testing: cat testin.txt
abc def ghi
asdf jkl; fdsa ;lkj qwerty 123
Once upon a time
When in the course

Testing: cat testin.txt | sed "s/\([^ ]*\) .*/\1/" >> testout.txt

Testing: cat testout.txt
abc
asdf
Once
When

Testing: cat testin.txt | sed "s/\([^ ]*\) .*/\1/" >> testout.txt

Testing: cat testout.txt
abc
asdf
Once
When
abc
asdf
Once
When

Testing:

testout.txt 에는 아무것도없고 testin.txt 에는 4 줄이 있습니다 . 그런 다음 testin.txt 의 내용 을 sed로 보내고 출력을 파일에 추가합니다. 그런 다음 내용을 보여줍니다. 그런 다음 실제로 추가되고 있음을 보여주기 위해 다시 한 번 수행했습니다 (이제 testout.txt에 8 줄 , 4 개씩 두 세트가 있습니다) (참고 : 읽기 쉽게하기 위해 빈 줄을 추가했습니다.)

궁금한 점이 있으면 알려주세요.

도움이 되었기를 바랍니다!

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

crontab -l의 출력을 파일로 리디렉션 할 수 없습니다.

분류에서Dev

bash 출력을 변수 파일 이름으로 리디렉션 할 수 없습니다.

분류에서Dev

프로그램의 모든 출력을 리디렉션 할 수 없습니다.

분류에서Dev

stdout / stderr을 로그 파일로 리디렉션 할 수 없습니다.

분류에서Dev

잘라낸 출력을 리디렉션 할 수 없습니다.

분류에서Dev

잘라낸 출력을 리디렉션 할 수 없습니다.

분류에서Dev

sed에서 출력을 리디렉션 할 수 없습니다.

분류에서Dev

sed에서 출력을 리디렉션 할 수 없습니다.

분류에서Dev

Cinnamon의 키보드 단축키로 호출 할 때 명령 출력을 파일로 리디렉션 할 수 없습니다.

분류에서Dev

Python / ipython 입력 / 출력을 텍스트 파일로 리디렉션 할 수 있습니까?

분류에서Dev

배치 파일의 파일로 리디렉션하기 전에 점을 사용할 수 없습니다.

분류에서Dev

FreeBsd에서 IO 출력을 리디렉션 할 수 없습니다.

분류에서Dev

Popen에서 임시 파일로 stdout을 성공적으로 리디렉션 할 수 없습니다.

분류에서Dev

일부 상황에서 출력을 리디렉션 할 수없는 이유

분류에서Dev

URL을 리디렉션 매개 변수로 전달할 수 없습니다.

분류에서Dev

Codeigniter에서 로그인 리디렉션을 수행 할 수 없습니다.

분류에서Dev

루트로도 디렉토리의 파일을 수정할 수 없습니다.

분류에서Dev

로컬 디렉토리에 파일을 업로드 할 수 없습니다.

분류에서Dev

로그 파일을 syslog로 리디렉션 할 수 있습니까?

분류에서Dev

프로그램의 출력을 파이프가있는 cat으로 리디렉션 할 수 있습니까?

분류에서Dev

PHP에서 Javascript로 헤더 리디렉션을 사용할 수 없습니다.

분류에서Dev

https로 리디렉션하는 localhost : 3000을 중지 할 수 없습니다.

분류에서Dev

너무도 레일을 리디렉션 할 수 있습니다.

분류에서Dev

디렉토리의 파일을 다른 디렉토리로 복사 할 수 없습니다.

분류에서Dev

디렉토리의 파일을 다른 디렉토리로 복사 할 수 없습니다.

분류에서Dev

한 디렉터리에서 다른 디렉터리로 파일을 복사 할 수 없습니다.

분류에서Dev

gcc -H의 출력을 리디렉션 할 수없는 이유

분류에서Dev

모든 homebrew cask 오래된 출력을 리디렉션 할 수 없습니까?

분류에서Dev

명령의 출력을 하나의 파일로 리디렉션 할 수 있지만 여전히 출력이 터미널에서 에코를 유지합니까?

Related 관련 기사

  1. 1

    crontab -l의 출력을 파일로 리디렉션 할 수 없습니다.

  2. 2

    bash 출력을 변수 파일 이름으로 리디렉션 할 수 없습니다.

  3. 3

    프로그램의 모든 출력을 리디렉션 할 수 없습니다.

  4. 4

    stdout / stderr을 로그 파일로 리디렉션 할 수 없습니다.

  5. 5

    잘라낸 출력을 리디렉션 할 수 없습니다.

  6. 6

    잘라낸 출력을 리디렉션 할 수 없습니다.

  7. 7

    sed에서 출력을 리디렉션 할 수 없습니다.

  8. 8

    sed에서 출력을 리디렉션 할 수 없습니다.

  9. 9

    Cinnamon의 키보드 단축키로 호출 할 때 명령 출력을 파일로 리디렉션 할 수 없습니다.

  10. 10

    Python / ipython 입력 / 출력을 텍스트 파일로 리디렉션 할 수 있습니까?

  11. 11

    배치 파일의 파일로 리디렉션하기 전에 점을 사용할 수 없습니다.

  12. 12

    FreeBsd에서 IO 출력을 리디렉션 할 수 없습니다.

  13. 13

    Popen에서 임시 파일로 stdout을 성공적으로 리디렉션 할 수 없습니다.

  14. 14

    일부 상황에서 출력을 리디렉션 할 수없는 이유

  15. 15

    URL을 리디렉션 매개 변수로 전달할 수 없습니다.

  16. 16

    Codeigniter에서 로그인 리디렉션을 수행 할 수 없습니다.

  17. 17

    루트로도 디렉토리의 파일을 수정할 수 없습니다.

  18. 18

    로컬 디렉토리에 파일을 업로드 할 수 없습니다.

  19. 19

    로그 파일을 syslog로 리디렉션 할 수 있습니까?

  20. 20

    프로그램의 출력을 파이프가있는 cat으로 리디렉션 할 수 있습니까?

  21. 21

    PHP에서 Javascript로 헤더 리디렉션을 사용할 수 없습니다.

  22. 22

    https로 리디렉션하는 localhost : 3000을 중지 할 수 없습니다.

  23. 23

    너무도 레일을 리디렉션 할 수 있습니다.

  24. 24

    디렉토리의 파일을 다른 디렉토리로 복사 할 수 없습니다.

  25. 25

    디렉토리의 파일을 다른 디렉토리로 복사 할 수 없습니다.

  26. 26

    한 디렉터리에서 다른 디렉터리로 파일을 복사 할 수 없습니다.

  27. 27

    gcc -H의 출력을 리디렉션 할 수없는 이유

  28. 28

    모든 homebrew cask 오래된 출력을 리디렉션 할 수 없습니까?

  29. 29

    명령의 출력을 하나의 파일로 리디렉션 할 수 있지만 여전히 출력이 터미널에서 에코를 유지합니까?

뜨겁다태그

보관