bash에서 perl 호출을 통해 파일 경로를 전달하는 방법은 무엇입니까?

je_b

이것은 이전 질문 ( 행을 변경하려고 할 때 perl에 인수를 전달하는 방법? )의 고급 버전입니다 .

이번에는 경로를 전달하려고 시도했지만 perl 스크립트가 / 잘못 읽힌 것 같습니다.

file.txt의 4 행이 다음과 같다고 가정합니다.

 path_root_abs = "/path/to/thefile"

작업 디렉토리를 얻고 / path / to / file에서 바꾸려면

 directory=`pwd`
 perl -i -pe "s/(path_root_abs\s=\s\")(.*)(\")/\$1${directory}$3/ if \$. == 4" file.txt

그리고 :

Bareword found where operator expected at -e line 1, near "s/(path_root_abs\s=\s")(.*)(")/$1/scratch"
syntax error at -e line 1, near "s/(path_root_abs\s=\s")(.*)(")/$1/scratch"
Execution of -e aborted due to compilation errors.

유닉스가 스크래치 뒤에 오는 \를 맨 말로 읽지 않으려면 어떻게해야합니까?

멘돈

첫 번째 문제는 $directory대체 연산자 ( s///) 의 구분 기호로도 사용되는 슬래시 포함되어 있다는 것 입니다. 경우 기본적 $directory이며 /home/je_b, 무엇 펄이 보는 것은 :

 perl -i -pe "s/foo//home/jb/ if \$. == 4" file.txt

그것은 소요 /의를 /home두 번째로 /s///운전자. 가장 간단한 해결책은 /다음 대신 다른 문자를 사용하는 것입니다 .

perl -i -pe "s#foo#${directory}#" file.txt

하지만 다른 방법으로 단순화 할 수도 있습니다. 이걸 고려하세요:

perl -pe "s#(path_root_abs = \")(.*)#\1${directory}\"# if \$. == 4" file
  • \s하나의 공간 만 일치해야 할 때 필요하지 않고 공간 만 사용하면됩니다.
  • 펄의 대체 연산자는 모두를 이해 $1하고 \1그래서 후자를 사용하고 탈출 마십시오.
  • "캐릭터 를 캡처 할 필요가 없습니다 . 거기에 있다는 것을 알고 있다면 직접 추가하십시오.

마지막으로 pwdPerl에서 직접 가져올 수도 있습니다. Perl은 %ENV해시를 통해 내 보낸 모든 쉘 변수에 액세스 할 수 있습니다. 따라서 다음과 같이 할 수 있습니다.

perl -pe 's#(path_root_abs = ").*#$1$ENV{PWD}"# if $.==1' file

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Rails에서 jQuery를 통해 JSON 파일을 호출하는 방법은 무엇입니까?

분류에서Dev

journalctl을 통해 BTRFS에서 손상된 파일의 전체 경로를 찾는 방법은 무엇입니까?

분류에서Dev

AJAX 호출을 통해 URL을 매개 변수로 APIController에 전달하는 방법은 무엇입니까?

분류에서Dev

SaltStack의 다른 SLS 파일을 통해 SLS 파일에 매개 변수를 전달하는 방법은 무엇입니까?

분류에서Dev

GET 및 Ajax 호출을 위해 js 파일에서 레일 경로를 사용하는 방법은 무엇입니까?

분류에서Dev

GET 및 Ajax 호출을 위해 js 파일에서 레일 경로를 사용하는 방법은 무엇입니까?

분류에서Dev

GET 및 Ajax 호출을 위해 js 파일에서 레일 경로를 사용하는 방법은 무엇입니까?

분류에서Dev

tcpip를 통해 db 파일을 전송하는 방법은 무엇입니까?

분류에서Dev

<compilerarg value = "">를 사용하여 <javac> Ant 작업을 통해 Java 컴파일러에 명령 줄 옵션을 전달하는 방법은 무엇입니까?

분류에서Dev

런타임 중에 docker-compose.yaml 파일을 통해 전달 된 반응 앱에서 환경 변수를 읽는 방법은 무엇입니까?

분류에서Dev

make를 사용하여 각 파일에 대해 명령을 호출하는 방법은 무엇입니까?

분류에서Dev

C # DataGridView를 통해 양식에서 양식으로 값을 전달하는 방법은 무엇입니까?

분류에서Dev

PERL에서 Powershell에 인수를 전달하고 출력을 유지하는 방법은 무엇입니까?

분류에서Dev

AJAX 호출을 통해 파이썬 스크립트를 호출하는 방법은 무엇입니까?

분류에서Dev

SSH 서버를 통해 파일을 다운로드하는 방법은 무엇입니까?

분류에서Dev

sftp를 통해 Windows 서버로 파일을 이동하는 방법은 무엇입니까?

분류에서Dev

Python에서 URL을 통해 Azure Blob Storage 파일을 다운로드하는 방법은 무엇입니까?

분류에서Dev

R에서 파이프를 통해 매개 변수를 전달하는 방법은 무엇입니까?

분류에서Dev

powershell을 통해 Azure 파이프 라인에 오류를 전달할 수있는 방법은 무엇입니까?

분류에서Dev

Visual Studio에서 체크인 할 때 ftp를 통해 변경된 파일을 서버에 업로드하는 방법은 무엇입니까?

분류에서Dev

CSV 파일을 찾기 위해 Jupyter Lab에서 경로를 설정하는 방법은 무엇입니까?

분류에서Dev

upstart 작업을 위해 파일에서 환경 변수를로드하는 방법은 무엇입니까?

분류에서Dev

쉘 스크립트를 통해 파일에서 문자열을 제거하는 방법은 무엇입니까?

분류에서Dev

하나의 cs 파일 (void!)에서 다른 파일로 값을 전달하는 방법은 무엇입니까?

분류에서Dev

JNA를 통해 DLL 함수 호출, Java에서 포인터를 통해 전달되는 주소를 처리하는 방법은 무엇입니까?

분류에서Dev

Entity Framework를 통해 저장 프로 시저에 null 값을 전달하는 방법은 무엇입니까?

분류에서Dev

perl의 c : \ root에서 일부 파일의 절대 경로를 인쇄하는 방법은 무엇입니까?

분류에서Dev

사용자 인터페이스에서 슬롯을 통해 파일 경로를 처리하는 방법은 무엇입니까?

분류에서Dev

코드에서 SSH를 통해 파일을 전송하는 프로토콜은 무엇입니까?

Related 관련 기사

  1. 1

    Rails에서 jQuery를 통해 JSON 파일을 호출하는 방법은 무엇입니까?

  2. 2

    journalctl을 통해 BTRFS에서 손상된 파일의 전체 경로를 찾는 방법은 무엇입니까?

  3. 3

    AJAX 호출을 통해 URL을 매개 변수로 APIController에 전달하는 방법은 무엇입니까?

  4. 4

    SaltStack의 다른 SLS 파일을 통해 SLS 파일에 매개 변수를 전달하는 방법은 무엇입니까?

  5. 5

    GET 및 Ajax 호출을 위해 js 파일에서 레일 경로를 사용하는 방법은 무엇입니까?

  6. 6

    GET 및 Ajax 호출을 위해 js 파일에서 레일 경로를 사용하는 방법은 무엇입니까?

  7. 7

    GET 및 Ajax 호출을 위해 js 파일에서 레일 경로를 사용하는 방법은 무엇입니까?

  8. 8

    tcpip를 통해 db 파일을 전송하는 방법은 무엇입니까?

  9. 9

    <compilerarg value = "">를 사용하여 <javac> Ant 작업을 통해 Java 컴파일러에 명령 줄 옵션을 전달하는 방법은 무엇입니까?

  10. 10

    런타임 중에 docker-compose.yaml 파일을 통해 전달 된 반응 앱에서 환경 변수를 읽는 방법은 무엇입니까?

  11. 11

    make를 사용하여 각 파일에 대해 명령을 호출하는 방법은 무엇입니까?

  12. 12

    C # DataGridView를 통해 양식에서 양식으로 값을 전달하는 방법은 무엇입니까?

  13. 13

    PERL에서 Powershell에 인수를 전달하고 출력을 유지하는 방법은 무엇입니까?

  14. 14

    AJAX 호출을 통해 파이썬 스크립트를 호출하는 방법은 무엇입니까?

  15. 15

    SSH 서버를 통해 파일을 다운로드하는 방법은 무엇입니까?

  16. 16

    sftp를 통해 Windows 서버로 파일을 이동하는 방법은 무엇입니까?

  17. 17

    Python에서 URL을 통해 Azure Blob Storage 파일을 다운로드하는 방법은 무엇입니까?

  18. 18

    R에서 파이프를 통해 매개 변수를 전달하는 방법은 무엇입니까?

  19. 19

    powershell을 통해 Azure 파이프 라인에 오류를 전달할 수있는 방법은 무엇입니까?

  20. 20

    Visual Studio에서 체크인 할 때 ftp를 통해 변경된 파일을 서버에 업로드하는 방법은 무엇입니까?

  21. 21

    CSV 파일을 찾기 위해 Jupyter Lab에서 경로를 설정하는 방법은 무엇입니까?

  22. 22

    upstart 작업을 위해 파일에서 환경 변수를로드하는 방법은 무엇입니까?

  23. 23

    쉘 스크립트를 통해 파일에서 문자열을 제거하는 방법은 무엇입니까?

  24. 24

    하나의 cs 파일 (void!)에서 다른 파일로 값을 전달하는 방법은 무엇입니까?

  25. 25

    JNA를 통해 DLL 함수 호출, Java에서 포인터를 통해 전달되는 주소를 처리하는 방법은 무엇입니까?

  26. 26

    Entity Framework를 통해 저장 프로 시저에 null 값을 전달하는 방법은 무엇입니까?

  27. 27

    perl의 c : \ root에서 일부 파일의 절대 경로를 인쇄하는 방법은 무엇입니까?

  28. 28

    사용자 인터페이스에서 슬롯을 통해 파일 경로를 처리하는 방법은 무엇입니까?

  29. 29

    코드에서 SSH를 통해 파일을 전송하는 프로토콜은 무엇입니까?

뜨겁다태그

보관