使用bash脚本在OS X上运行:
sourceFile=`basename $1`
shopt -s nocasematch
if [[ "$sourceFile" =~ "adUsers.txt" ]]; then echo success ; else echo fail ; fi
Run Code Online (Sandbox Code Playgroud)
上面的工作,但如果用户来源一个名为adUsers_new.txt?的文件怎么办?
我试过了:
if [[ "$sourceFile" =~ "adUsers*.txt" ]]; then echo success ; else echo fail ; fi
Run Code Online (Sandbox Code Playgroud)
但是在这种情况下,通配符不起作用.我正在编写此脚本以允许用户对源文件名进行不同的迭代,该文件名必须以文件扩展名开头aduser并具有.txt文件扩展名.
如果我在OS X上运行它:
last -10 | awk '{print $1}'
Run Code Online (Sandbox Code Playgroud)
我得到:剁
剁
剁
chrihopk
重启
关机
剁
剁
剁
chrihopk
如何使用sed或awk获取最频繁的用户'chop'?
对问题的其他编辑:
我们的本地管理员帐户会干扰结果(用户名:支持),并且我们通常会在客户端框中添加新的启动器.
我怎么能修改
last -1
Run Code Online (Sandbox Code Playgroud)
省略以下内容并返回最后一个有效用户名:
支持
重启
关机
谢谢
我在Mac OS 10.7.x上,需要询问网络服务,以报告针对服务定义的接口以及针对每个接口设置的dns服务器.
servicesAre=`networksetup -listallnetworkservices | tail -n +2 | sed 's/.*/"&"/'` ;
for interface in $servicesAre ; do
printf " \nFor $interface we have:\n \n" ;
networksetup -getdnsservers $interface ;
done
Run Code Online (Sandbox Code Playgroud)
我的问题是接口的初始变量列表中的空格:
"USB Ethernet"
"Display Ethernet"
"Wi-Fi"
"Bluetooth PAN"
Run Code Online (Sandbox Code Playgroud)
我如何通过这些?
如果我ls -l在一个目录中并得到:
-rwxr-x--- 1 user1 admin 0 8 Aug 2012 file.txt
-rwxr-x--- 1 user1 admin 1733480 26 Jul 2012 Archive.pax.gz
drwxr-x---@ 7 user1 admin 238 31 Jul 2012 Mac Shots
-rwxr-x---@ 1 user3 admin 598445 31 Jul 2012 Mac Shots.zip
-rwxr-x---@ 1 user1 admin 380 6 Jul 2012 an.sh
-rwxr-x--- 1 user2 admin 14 30 Jun 2012 analystName.txt
-rwxr-x--- 1 user1 admin 36 8 Aug 2012 apple.txt
drwxr-x---@ 7 user1 admin 238 31 Jul 2012 iPad Shots
-rwxr-x---@ …Run Code Online (Sandbox Code Playgroud) 我需要列出目录的内容,但不包括纯文本文件中的已知文件列表.我假设使用grep或输入重定向或可能是一个while循环但是卡住了.
以下作品但是长篇大论:
ls ~/Library/Fonts | grep -v 'Onyx\|Playbill\|Georgia\|Garamond\|Tahoma\|Verdana\|Microsoft'
Run Code Online (Sandbox Code Playgroud)
任何帮助赞赏.
bash ×4
macos ×3
awk ×1
for-loop ×1
if-statement ×1
inputstream ×1
ls ×1
sed ×1
spaces ×1
unix ×1