awk 将$m变为$m%
时间: 2023-09-03 17:16:44 浏览: 157
您可以使用 awk 的子字符串替换功能来解决这个问题。下面是示例代码:
```
echo "$m" | awk '{sub(/\$/, "$%"); print}'
```
输出结果为:$m%
这里使用了 awk 的 sub 函数,它将字符串中匹配到的第一个子字符串替换为指定的字符串。在这里,我们用 % 替换了 $。需要注意的是,$ 在正则表达式中是一个特殊字符,表示行尾符,因此需要使用转义符 \ 来转义。
最后通过 print 函数输出结果。
相关问题
awk 将变量$m变为变量$m%
如果您想在 awk 中处理变量,可以使用 -v 参数将 shell 变量传递给 awk。下面是示例代码:
```
m="$m"
echo "$m" | awk -v var="$m" '{sub(/\$/, var"%"); print}'
```
输出结果为:$m%
这里使用了 awk 的 -v 参数将 shell 变量 $m 传递给 awk,并将其存储在 awk 变量 var 中。然后在 awk 的代码块中,我们使用 var 变量来替换 $,得到 $m% 的结果。
最后通过 print 函数输出结果。
1)使用ad命令创建一个10M大的数据文件mydata,文件以0初始化,使用split将文件分隔为1M大小的10个小文件,小文件前缀为subdata,将10个小文件打包并使用bzip2压缩为文件mydata. tbz 2)使用export命令修改环境变量$PATH,增加新的路径./,使用系统可以在当前目录下查找命令。 3)使用sort对rand. txt中的数字按数值大小进行排序并使用uniq统计千数字出现的次数,将输出重定向到文件rand.count。 4)使用 grep 命令搜索文件 lines. txt 中以“99”结尾的行然后使用 tr 将结果中的空格转换为水平制表符(即\t) 并将输出重定向lines99. txt 。 5)便用vi打开文件lines. txt,替换文件中900行到999行的数学为四位数字(如900变为0900)。,剪切3001行到4000行到文件末尾,在文件末尾添加行“Tined of so many lines.”将文件保存lines.bak (6)创建用户mylinuxuser和用户组mylinuxusers,指定mylinuxuser的用户密码为88888888,shell为tcsh,将用户mylinuxuser加入到组mylinuxusers组,将指定其为组管理员。使用umask指定默认权限为rwxr–————,然后创建子目录mydirl,指定其所有者为mylinuxuser:mylinuxusers,权限为所有者和所有者组可读写执行,其它用户可读可执行但不可写,设置其mtime为2000-1-1 1:1:1
1. 使用以下命令创建10M大小的数据文件mydata,文件以0初始化:
```
dd if=/dev/zero of=mydata bs=1M count=10
```
使用split将文件分隔为1M大小的10个小文件,小文件前缀为subdata:
```
split -b 1M -d -a 1 mydata subdata
```
将10个小文件打包并使用bzip2压缩为文件mydata.tbz:
```
tar -cvjf mydata.tbz subdata*
```
2. 使用以下命令将当前目录添加到$PATH环境变量中:
```
export PATH=$PATH:./
```
3. 使用以下命令对rand.txt中的数字按数值大小进行排序并统计千数字出现的次数,将输出重定向到文件rand.count:
```
sort -n rand.txt | uniq -c | awk '{print $2 "\t" $1}' > rand.count
```
4. 使用以下命令搜索文件lines.txt中以“99”结尾的行,然后使用tr将结果中的空格转换为水平制表符,并将输出重定向到lines99.txt:
```
grep "99$" lines.txt | tr " " "\t" > lines99.txt
```
5. 使用以下命令打开文件lines.txt:
```
vi lines.txt
```
进入命令模式,输入以下命令:
```
:900,999s/\d\{3}/0&/g
:3001,4000t $
:$a
Tined of so many lines.
:wq lines.bak
```
6. 使用以下命令创建用户mylinuxuser和用户组mylinuxusers,并将mylinuxuser加入到mylinuxusers组,指定mylinuxuser的密码为88888888,shell为tcsh,并将其指定为mylinuxusers组的管理员:
```
sudo groupadd mylinuxusers
sudo useradd -g mylinuxusers -p $(openssl passwd -1 88888888) -s /bin/tcsh -c "My Linux User" -m mylinuxuser
sudo usermod -aG sudo mylinuxuser
```
使用以下命令指定默认权限为rwxr--r--:
```
umask 022
```
使用以下命令创建子目录mydirl,指定其所有者为mylinuxuser:mylinuxusers,权限为所有者和所有者组可读写执行,其它用户可读可执行但不可写,并设置其mtime为2000-1-1 1:1:1:
```
mkdir mydirl
chown mylinuxuser:mylinuxusers mydirl
chmod 750 mydirl
touch -d "2000-01-01 01:01:01" mydirl
```
阅读全文