امروز سناریوی برام پیش اومد که مجبور بودم با استفاده از یک API به یک وب سروری وصل بشم و از خروجی دستور زیر، که یک شماره تلفن را برای من در شل لینوکس نمایش میداد. ("phone": "+989203716705")
سناریو من طوری بود که میخواستم تنها از 10 رقم آخرش (از سمت راست) خروجی بگیرم و به یک اسکریپت دیگه پاس بدهم. برای این کار ابتدا از دستور grep و awk به جهت فیلتر کردن 10 رقم آخر این شماره استفاده کردم ولی خروجی که میخواستم را بهم نمیداد. بعد از کلی سرچ و جستجو موفق شدم با ترکیب دستورات tail و head خروجی مورد نظرم رو به دست بیارم. البته این خروجی رو به دو روش من به دست آورد که در اینجا برای شما هم به اشتراک میگذارم که شما هم استفاده کنید.
روش اول :
روش دوم :
امیدوارم مفید واقع شده باشه.
کد PHP:
[root@localhost ~]# curl -s 'http://172.17.100.10:8080/habili/2'
{
"id": 2,
"phone": "+989121115500"
}[root@localhost ~]#
روش اول :
کد PHP:
[root@localhost ~]# curl -s 'http://172.17.100.10:8080/habili/2' | tail -c 13 | head -c 10
روش دوم :
کد PHP:
[root@localhost ~]# curl -s 'http://172.17.100.10:8080/habili/2' | awk -n 'BEGIN {FS = """} ; /"phone":/ { print substr($4,length($4)-9,length($4))}'