Сырая реализация, но:
#!/bin/bash
string=$(grep -o '".*"' my.csv | tr ',' ' ')
before=$(cat my.csv | cut -d',' -f1-9 | grep -v ',NA')
after=$(cat my.csv | cut -d',' -f12 | grep -v ',NA')
echo "${before},${string},${after}"
Вывод:
11/7/18,Jackson Pierce,3,3,3,3,4,3,7,"feeling alright same situation with the hip.",3.56
Один путь состоял бы в том, чтобы спросить среду:
Dim UserName As String
Dim UserDomain As String
UserName = Environ("USERNAME")
UserDomain = Environ("USERDOMAIN")
(Работы над Windows NT и только, очевидно.)
И версия API:
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Declare Function LookupAccountName Lib "advapi32.dll" Alias "LookupAccountNameA" (lpSystemName As String, ByVal lpAccountName As String, sid As Any, cbSid As Long, ByVal ReferencedDomainName As String, cbReferencedDomainName As Long, peUse As Long) As Long
Private Sub Form_Load()
Dim sDomainName As String * 255
Dim lDomainNameLength As Long
Dim sUserName as String
Dim bUserSid(255) As Byte
Dim lSIDType As Long
Rem Create a buffer
sUserName = String(100, Chr$(0))
Rem Get the username
GetUserName sUserName, 100
Rem strip the rest of the buffer
sUserName = Left$(sUserName, InStr(sUserName, Chr$(0)) - 1)
rem Show the temppath and the username
MsgBox "Hello " + strUserName
lResult = LookupAccountName(vbNullString, sUserName, bUserSid(0), 255, sDomainName, lDomainNameLength, _
lSIDType)
if lResult <>0 then
msgbox sDomainName
end if
end sub
Используйте следующие методы объекта WshNetwork, который доступен после ссылки на Windows Script Host Object Model в проекте:
Dim Network As WshNetwork
Set Network = New WshNetwork
Debug.Print "ComputerName: " & Network.ComputerName
Debug.Print "UserDomain: " & Network.UserDomain
Debug.Print "UserName: " & Network.UserName
Я бросил результаты к верхнему регистру или нижнему регистру для непротиворечивости, но это - методы, в которых Вы нуждаетесь.
Обратите внимание, что при выполнении на машине это не вошло в домен, и ComputerName и UserDomain возвращают то же самое - имя компьютера.
В основном необходимо сделать Windows API calls. Поиск vbnet.mvps.org я получаю следующие ответы.
Что относительно этого?
Private Function IsAdmin() As Boolean
Dim groups As Object
Dim user As Object
Set groups = GetObject("WinNT://./administrators")
For Each user In groups.members
If UCase(Environ("USERNAME")) = UCase(user.Name) Then
IsAdmin = True
End If
Next user
End Function