Sponsored Content
Full Discussion: Wildcards In UNIX
Top Forums UNIX for Dummies Questions & Answers Wildcards In UNIX Post 13220 by Perderabo on Monday 14th of January 2002 09:31:52 AM
Old 01-14-2002
Wildcarding is sometimes also called globbing. And shells have ways to turn it off. We need to know which shell you are using to tell you how to check and correct this. But with ksh there is an option called "noglob" and you want this option off. I find the syntax for this to be counterintuitive:

set -o | grep noglob # check status of noglob
set -o noglob # Turn noglob on, no wildcards
set +o noglob # Turn noglob off, wildcards work
 

10 More Discussions You Might Find Interesting

1. Programming

Makefile wildcards

Using a makefile I want to compile all .c files in the current directory without specifying them directly and then link their associated .o files into a library. How do I do this ? Thanks. (1 Reply)
Discussion started by: rcscott
1 Replies

2. UNIX for Dummies Questions & Answers

ls - wildcards and global use

Hiya, I want to list all files missing a certain pattern and/or filename pattern on the entire drive. In DOS I would type (for instance): dir \t*.doc /s /a which should find all doc files whose filename starts with `t'. How do I do that in a unix shell? Can it be done w/ ls at... (5 Replies)
Discussion started by: ropers
5 Replies

3. UNIX for Dummies Questions & Answers

Wildcards in VI

I'm trying to delete lines from a large text file using VI. Every line that I am wanting to delete start with 'S' - all others do not. (A list of users) I've tried using * but doesn't seem to like it...any ideas... Doesn't have to be VI - but I'm better with VI than sed/awk. (8 Replies)
Discussion started by: peter.herlihy
8 Replies

4. UNIX for Dummies Questions & Answers

wildcards

when writing a shell script (bourne) and using a unix command like 'ls' is there anything special you need to do to use a wildcard (like *)? (3 Replies)
Discussion started by: benu302000
3 Replies

5. UNIX for Dummies Questions & Answers

ls with wildcards

ok, I'm trying to write a script file that lists files with specific elements in the name into a txt file, it looks like this ls s*.dat > file_names.txt can't figure out whats wrong with that line, any ideas? thanks in advance (10 Replies)
Discussion started by: benu302000
10 Replies

6. UNIX for Dummies Questions & Answers

wildcards NOT

Hi All Please excuse another straightforward question. When creating a tar archive from a directory I am attempting to use wildcards to eliminate certain filetypes (otherwise the archive gets too large). So I am looking for something along these lines. tar -cf archive.tar * <minus all *.rst... (5 Replies)
Discussion started by: C3000
5 Replies

7. UNIX for Dummies Questions & Answers

wildcards in path

Is there some rule about using wildcards in path? Say I want to create a file, but one of the directories in the path is called 1433d.default and on different machines it will be called <some other string>.default touch ~/Library/Application/*.default/myfile In theory I thought that... (5 Replies)
Discussion started by: glev2005
5 Replies

8. UNIX for Advanced & Expert Users

Wildcards

These 2 websites do a GREAT job of explaining different types of wildcards. I learned about the categories of characters which I never knew about at all. GNU/Linux Command-Line Tools Guide - Wildcards GREP (1 Reply)
Discussion started by: cokedude
1 Replies

9. Shell Programming and Scripting

Wildcards and exceptions

Hello: I have a very basic question. I'd like to select all files except for one file. For example, say I want to move all of the files in my current directory to a subdirectory called archive, I would use mv ./* archive/ But what if I want to move all files except for README.txt? Is there an... (19 Replies)
Discussion started by: Danny.Boy
19 Replies

10. UNIX for Dummies Questions & Answers

Renaming with wildcards

Hi, I'm new to Unix, but have a directory which has many files in it, well over 1000. The files are called : M07GO.STOPE0001 M07GO.STOPE0002 M07GO.STOPE0003 M07GO.STOPE0004 etc... I would like to rename them to the following : M070001.bin M070002.bin M070003.bin M070004.bin etc....... (4 Replies)
Discussion started by: rnmuk
4 Replies
tset(1B)					     SunOS/BSD Compatibility Package Commands						  tset(1B)

NAME
tset, reset - establish or restore terminal characteristics SYNOPSIS
tset [-InQrs] [-ec] [-kc] [-m [port-ID [baudrate] : type]...] [type] reset [-] [-ec] [-I] [-kc] [-n] [-Q] [-r] [-s] [-m [indent] [test baudrate] : type]... [type] DESCRIPTION
The tset utility sets up your terminal, typically when you first log in. It does terminal dependent processing such as setting erase and kill characters, setting or resetting delays, sending any sequences needed to properly initialized the terminal, and the like. tset first determines the type of terminal involved, and then does necessary initializations and mode settings. If a port is not wired permanently to a specific terminal (not hardwired) it is given an appropriate generic identifier such as dialup. reset clears the terminal settings by turning off CBREAK and RAW modes, output delays and parity checking, turns on NEWLINE translation, echo and TAB expansion, and restores undefined special characters to their default state. It then sets the modes as usual, based on the terminal type (which will probably override some of the above). See stty(1) for more information. All arguments to tset may be used with reset. reset also uses rs= and rf= to reset the initialization string and file. This is useful after a program dies and leaves the termi- nal in a funny state. Often in this situation, characters will not echo as you type them. You may have to type LINEFEED reset LINEFEED since RETURN may not work. When no arguments are specified, tset reads the terminal type from the TERM environment variable and re-initializes the terminal, and per- forms initialization of mode, environment and other options at login time to determine the terminal type and set up terminal modes. When used in a startup script (.profile for sh(1) users or .login for csh(1) users) it is desirable to give information about the type of terminal you will usually use on ports that are not hardwired. Any of the alternate generic names given in the file /etc/termcap are possi- ble identifiers. Refer to the -m option below for more information. If no mapping applies and a final type option, not preceded by a -m, is given on the command line then that type is used. It is usually desirable to return the terminal type, as finally determined by tset, and information about the terminal's capabilities, to a shell's environment. This can be done using the -, -s, or -S options. For the Bourne shell, put this command in your .profile file: eval `tset -s options...` or using the C shell, put these commands in your .login file: set noglob eval `tset -s options...`unset noglob With the C shell, it is also convenient to make an alias in your .cshrc file: alias ts 'eval `tset -s !*`' This also allows the command: ts 2621 to be invoked at any time to set the terminal and environment. It is not possible to get this aliasing effect with a Bourne shell script, because shell scripts cannot set the environment of their parent. If a process could set its parent's environment, none of this nonsense would be necessary in the first place. Once the terminal type is known, tset sets the terminal driver mode. This normally involves sending an initialization sequence to the ter- minal, setting the single character erase (and optionally the line-kill (full line erase)) characters, and setting special character delays. TAB and NEWLINE expansion are turned off during transmission of the terminal initialization sequence. On terminals that can backspace but not overstrike (such as a CRT), and when the erase character is `#', the erase character is changed as if -e had been used. OPTIONS
- The name of the terminal finally decided upon is output on the standard output. This is intended to be captured by the shell and placed in the TERM environment variable. -ec Set the erase character to be the named character c on all terminals. Default is the BACKSPACE key on the keyboard, usually ^H (CTRL-H). The character c can either be typed directly, or entered using the circumflex-character notation used here. -ic Set the interrupt character to be the named character c on all terminals. Default is ^C (CTRL-C). The character c can either be typed directly, or entered using the circumflex-character notation used here. -I Suppress transmitting terminal-initialization strings. -kc Set the line kill character to be the named character c on all terminals. Default is ^U (CTRL-U). The kill character is left alone if -k is not specified. Control characters can be specified by prefixing the alphabetical character with a circumflex (as in CTRL- U) instead of entering the actual control key itself. This allows you to specify control keys that are currently assigned. -n Specify that the new tty driver modes should be initialized for this terminal. Probably useless since stty new is the default. -Q Suppress printing the `Erase set to' and `Kill set to' messages. -r In addition to other actions, reports the terminal type. -s Output commands to set and export TERM. This can be used with set noglob eval `tset -s ...` unset noglob to bring the terminal information into the environment. Doing so makes programs such as vi(1) start up faster. If the SHELL envi- ronment variable ends with csh, C shell commands are output, otherwise Bourne shell commands are output. -m [ port-ID [ baudrate ] : type ] ... Specify (map) a terminal type when connected to a generic port (such as dialup or plugboard) identified by port-ID. The baudrate argu- ment can be used to check the baudrate of the port and set the terminal type accordingly. The target rate is prefixed by any combina- tion of the following operators to specify the conditions under which the mapping is made: > Greater than @ Equals or ``at'' < Less than ! It is not the case that (negates the above operators) ? Prompt for the terminal type. If no response is given, then type is selected by default. In the following example, the terminal type is set to adm3a if the port is a dialup with a speed of greater than 300 or to dw2 if the port is a dialup at 300 baud or less. In the third case, the question mark preceding the terminal type indicates that the user is to verify the type desired. A NULL response indicates that the named type is correct. Otherwise, the user's response is taken to be the type desired. tset -m 'dialup>300:adm3a' -m 'dialup:dw2' -m 'plugboard:?adm3a' To prevent interpretation as metacharacters, the entire argument to -m should be enclosed in single quotes. When using the C shell, exclamation points should be preceded by a backslash (). EXAMPLES
These examples all use the `-' option. A typical use of tset in a .profile or .login will also use the -e and -k options, and often the -n or -Q options as well. These options have been omitted here to keep the examples short. Example 1 Selecting a terminal To select a 2621, you might put the following sequence of commands in your .login file (or .profile for Bourne shell users). set noglob eval `tset -s 2621` unset noglob If you want to make the selection based only on the baud rate, you might use the following: set noglob eval `tset -s -m '>1200:wy' 2621` unset noglob Example 2 Selecting terminals according to speed or baud rate If you have a switch which connects to various ports (making it impractical to identify which port you may be connected to), and use vari- ous terminals from time to time, you can select from among those terminals according to the speed or baud rate. In the example below, tset will prompt you for a terminal type if the baud rate is greater than 1200 (say, 9600 for a terminal connected by an RS-232 line), and use a Wyse(R) 50 by default. If the baud rate is less than or equal to 1200, it will select a 2621. Note the placement of the question mark, and the quotes to protect the > and ? from interpretation by the shell. set noglob eval `tset -s -m 'switch>1200:?wy' -m 'switch<=1200:2621'` unset noglob Example 3 Selecting the terminal used most often The following entry is appropriate if you always dial up, always at the same baud rate, on many different kinds of terminals, and the ter- minal you use most often is an adm3a. set noglob eval `tset -s ?adm3a` unset noglob Example 4 Selecting a terminal with specific settings The following example quietly sets the erase character to BACKSPACE, and kill to CTRL-U. If the port is switched, it selects a Concepttm 100 for speeds less than or equal to 1200, and asks for the terminal type otherwise (the default in this case is a Wyse 50). If the port is a direct dialup, it selects Concept 100 as the terminal type. If logging in over the ARPANET, the terminal type selected is a Datamedia(R) 2500 terminal or emulator. Note the backslash escaping the NEWLINE at the end of the first line in the example. set noglob eval `tset -e -k^U -Q -s -m 'switch<=1200:concept100' -m 'switch:?wy' -m dialup:concept100 -m arpanet:dm2500` unset noglob FILES
.login .profile /etc/termcap ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Availability |SUNWscpu | +-----------------------------+-----------------------------+ SEE ALSO
csh(1), sh(1), stty(1), vi(1), attributes(5), environ(5) NOTES
The tset command is one of the first commands a user must master when getting started on a UNIX system. Unfortunately, it is one of the most complex, largely because of the extra effort the user must go through to get the environment of the login shell set. Something needs to be done to make all this simpler, either the login program should do this stuff, or a default shell alias should be made, or a way to set the environment of the parent should exist. This program cannot intuit personal choices for erase, interrupt and line kill characters, so it leaves these set to the local system stan- dards. It could well be argued that the shell should be responsible for ensuring that the terminal remains in a sane state; this would eliminate the need for the reset program. SunOS 5.11 15 Feb 1995 tset(1B)
All times are GMT -4. The time now is 12:06 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy