C - shell , of CSH , is een veel gebruikte UNIX shell voor het uitvoeren van opdrachten op een UNIX -computer . CSH niet veel van het gemak functies bevatten voor het manipuleren van tekenreeksen die gangbaar zijn in meer moderne scripttalen . Echter , er zijn verschillende korte methoden voor de extractie van substrings gebruik CSH code en standaard UNIX commando . Instructies behulp Awk 1 Definieer een string of een set snaren om te worden gebruikt als een voorbeeld : set eenstring = " . CSH scripts zijn leuk " ingesteld someStringSet = ( schrijvers " Demand Media " " koers " ) kopen van 2 Pak een substring met behulp van de " substr ( ) " functie van de UNIX- commando " awk . " de substr commando duurt maximaal drie argumenten , eerst , het snaarnummer , tweede , het karakter en de derde positie , de lengte van de geretourneerde substring . Het volgende commando met eenstring als input zou terugkeren " scripts zijn leuk . " Awk ' {print substr ( $ 0,5 ) } ' Uitvoeren het volgende commando met eenstring als input zou terugkeren " scripts . " awk ' {print substr ( $ 0,5,7 ) } ' 3 Gebruik de echo functie en de pijp operator direct de waarde van de tekenreeksvariabele de awk opdracht . De tweede opdracht retourneert de tekenreeks ' Med . " Set resultaat1 = ` echo $ eenstring | awk ' {print substr ( $ 0,5 ) } ' ` set resultaat2 = ` echo $ someStringSet [ 2 ] | awk ' {print substr ( $ 0,8,3 ) } ' ` Losse 4 Definieer een string of een set snaren om te worden gebruikt als een voorbeeld : set eenstring = " CSH scripts zijn leuk . " set someStringSet = ( schrijvers " Demand Media " " koers " ) 5 Gebruik de UNIX- cut commando om extract een reeks tekens . Voor " someStringSet " zou de string "De vraag prijs , " waar de " - d " qualifer specificeert het scheidingsteken tussen woorden in een string en " - f" geeft de velden , of woorden , te snijden . < Br terug cut - d > ' ' - f2 , 5 Als alternatief kunt u gebruik maken van de " - c " qualifer om tekens of tekenreeksen te snijden opgeven . Het volgende commando met someStringSet als input zou terugkeren " writeDM . " Cut - c1 - 5 , 10,17 6 Gebruik de functie " echo " en de pipe operator om de waarde van de string variabele naar de awk commando sturen .
|