0
친애하는 모두! 나는 ipython으로 질문을 찾는다.ipython은 awk에서 잘못 작동합니까?
내가 입력
!ls -l | awk '{print $$1}'
그것은 나에게 준다 그러나
drwxr-xr-x 2 ckivip ckivip 4096 Oct 11 20:38 Desktop
drwxr-xr-x 6 ckivip ckivip 4096 Oct 11 22:57 Documents
drwxrwxr-x 3 ckivip ckivip 4096 Oct 11 12:53 Downloads
drwxr-xr-x 6 ckivip ckivip 4096 Sep 29 18:22 Epigenetics
drwxr-xr-x 2 ckivip ckivip 4096 Sep 20 14:59 Music
drwxr-xr-x 23 ckivip ckivip 4096 Oct 10 11:02 Pictures
drwxr-xr-x 8 ckivip ckivip 4096 Sep 20 15:21 Project
drwx------ 5 ckivip ckivip 4096 Sep 25 21:31 R
drwxr-xr-x 5 ckivip ckivip 4096 Oct 9 19:23 Share
, 내가 입력
!ls -l | awk '{print $1}'
그것은 저를 제공합니다
drwxr-xr-x
drwxr-xr-x
drwxrwxr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwx------
"$"기호가 너무 귀찮습니다. 그리고 가장 못생긴 점은 파이썬에서 변수를 'awk'함수를 사용할 때 '$'를 사용하여 쉘로 전송할 수 없다는 것입니다. 어떻게 처리 할 수 있습니까?
IPython은'$ var'을 사용하여 파이썬 변수를 명령에 넣을 수있게하므로 리터럴'$ '을 명령에 전달하려면이 코드를 두 배로 늘려야합니다. 더 많은 경우에 사용할 수있는'{var} '을 사용할 수도 있습니다. –
첫 번째 상황에서는 이중 $를 사용합니다. 그러나, 그것은 나에게 틀린 대답을 준다. 두 번째 상황에서는 '$'하나만 사용합니다. 그리고 그것은 나에게 옳은 대답을 준다. 왜? @Thomas K – xiuxing
아, 그 전체 비트가'{}'안의 괄호 안에 있고 (유효한 파이썬 표현식이 아니기 때문에) 그대로 전달됩니다. 그래서 두 배로 할 필요가 없습니다. –