编程必知的10个Unix命令技巧-unix文件系统
Unix命令为我们的工作提供了极大的便利。这里分享10个Unix命令小窍门,让我们一起将大工作量变得更快速。
文件每一行显示最后一个字
如果你知道$NF,这个技巧就相对简单。
awk '{print $NF}
awk -F: '{print $NF}'
NF编程代表字段数(e.g., 5),因此,$NF 代表字段值 (e.g., $5)。
$ cat numbers
1 2 3 4 5
one two three four five
$ awk '{print $NF}' numbers
5
five
这个技巧,在打印文件最右边的字时很有帮助,即使是每行包含不同字数的词,也可用。如果你想打印其他行末的词,也可以使用NF作为字段选项的锚。在这个命令中,我们使用NF-1选择最后一个字段.
$ awk '{print $(NF-1)}' numbers
4
four
删除Nth行
从文件中删除特定行应该是一个很简单的操作。在下面的例子中,确保是1到11的文件数,一个数字一行。使用命令,像是,第七行像是,"7d"命令就是删除第七行,示例如下:
$ sed -i '7 d' numbers
$ cat numbers
1
2
3
4
5
6
8
9
10
11
你可以使用范围删除一个序列行,命令是【sed -i '7,9 d' numbers】,意思是删除7至9行。
删除空白行
删除文件中的空白行方法有很多,我使用最简单的一个。在下面的命令中,使用 ^$代替行空白。^ 代表一行的开始,$ 代表一行的结束,因此,一行的开始结束中,没有东西,为空白。
$ cat strings
This is the last day
of your life thus far
Mr. Logic
$ sed -i '/^$/d' strings
$ cat strings
This is the last day
of your life thus far
Mr. Logic
使用 sed命令(如下),可以删除空白行并备份原文件。
$ perl -i.bak -n -e'print if /\S/' strings
$ ls -l strings*
-rw-r----- 1 shs faculty 53 Jan 4 2015 strings
-rw-r----- 1 shs faculty 54 Jan 4 18:36 strings.bak
值得注意的是,单个空白行删除,文件比原文件要小一个字符。
寻找符号链接
Unix系统中找符号链接也很简单,在查找命令中一个按文件类型查找的选项。查找符号链接的符号为"l"
$ find . -type l -ls
12763168 0 lrwxrwxrwx 1 shs staff 6 Jan 27 2013 ./hlinks/5 -> 5beers
12763423 0 lrwxrwxrwx 1 shs staff 4 Nov 23 2013 ./projects/tmp -> /tmp
查找不指向当前文件的符号链接
Unix系统可以创建不指向当前文件的符号链接,创建后删除原文件也是可以的。也可以创建多个符号链接。可以用查找命令和Perl命令追踪他。
find . -type l -print | perl -nle '-e || print';
确定体系结构(32或64位)
使用以下命令:
$ arch
i686
该命令在 Linux 下也能用。当我在Solaris下使用时,得到答案"sun4"。
颠倒字符
rev命令一次性完全颠倒字符,你可以将文本改成这样:
$ echo "dlroW ,olleH" | rev
Hello, World
也可以写文件名,然后完全颠倒。
$ rev strings
yad tsal eht si sihT
raf suht efil ruoy fo
cigoL .rM
计算文字出现次数
我们要考虑几个问题,一个词可能在另一个词中出现,比如"the"是"there"的一部分;一个词也可能在一行里多次出现。我们怎么计算呢?使用【grep -c "word" filename 】命令,他也是和【grep word filename】做差不多的事。他只会告诉你字在每行出现的次数,而不是全部出现的次数,我们可以看看下面的代码:
$ cat words
the the the the the then there they
$ grep -c the words
1
另一种选择,你可以这样做:
#!/bin/bash
count=0
look4=$1
file=$2
for word in `cat $file`
do
if [ $word == "$look4" ]; then
((count++))
fi
done
echo $count
在这个脚本中,如果匹配我们所搜索的,for循环可以让我们看到每个字和增量数。不过该脚本不一定通用。
用一个词替换另一个词
完成这个工作,我使用以下命令:
sed s/this/that/g filename
无论命令变得多复杂,你都可以在this,that间变换。我们来一个相对复杂的例子。使用 \b标记,确保将 "the" 变为 "why"。
$ cat words
the the the the the then there they
$ sed -e 's/\bthe\b/why/g' words
why why why why why then there they
看到了吗"the"无论在多长的句子里都没变。
如果你想改变"The" 或者 "the",你可以使用下面的命令:
$ sed -e 's/\bthe\b/why/g' words
The why why why why then there they
$ sed -e 's/\bthe\b/why/gi' words
why why why why why then there they
从subshell标记可用变量
如果不导出设置的shell,Subshells是不会认变量的。
$ cat showme
#!/bin/bash
echo $something
$ something="well done"
$ ./showme
$ export something
$ ./showme
well done
本站文章除注明转载外,均为本站原创或翻译
相关内容
-
金蝶kis专业版技巧|如何使用金蝶KIS专业版
金蝶kis专业版技巧|如何使用金蝶KIS专业版,,1.如何使用金蝶KIS...
-
IE脚本错误如何做Web脚本错误解决技巧
IE脚本错误如何做Web脚本错误解决技巧,,这个问题是由于这样的...
-
cad逐点标注快捷键|cad的逐点标注命令
cad逐点标注快捷键|cad的逐点标注命令,,cad的逐点标注命令工具...
-
cad快捷键命令|cad快捷键命令大全标注
cad快捷键命令|cad快捷键命令大全标注,,cad快捷键命令大全标注...
-
你忘记了计算机的开放密码吗计算机引导代码修改
你忘记了计算机的开放密码吗计算机引导代码修改,,计算机的启动...
-
矩形cad快捷键|CAD矩形命令快捷键
矩形cad快捷键|CAD矩形命令快捷键,,CAD矩形命令快捷键CAD软件...
-
cad重复复制快捷键|cad连续复制快捷键命令
cad重复复制快捷键|cad连续复制快捷键命令,,1. cad连续复制快...
-
单反设置技巧|单反怎么调节
单反设置技巧|单反怎么调节,,1. 单反怎么调节佳能相机全自动档...
-
lol瞎子快捷键|英雄联盟瞎子玩法技巧
lol瞎子快捷键|英雄联盟瞎子玩法技巧,,英雄联盟瞎子玩法技巧有...
-
金蝶财务软件错误代码5h|金蝶软件无法查账出现
金蝶财务软件错误代码5h|金蝶软件无法查账出现该模块使用已...
-
求和快捷键技巧|求和的快捷方式
求和快捷键技巧|求和的快捷方式,,求和的快捷方式方法一:快捷键a...
-
如何解决电脑蓝屏错误代码是0x0000007f问题
如何解决电脑蓝屏错误代码是0x0000007f问题,,点评:如何解决电脑...
-
cmd命令快捷键|cmd快捷键大全
cmd命令快捷键|cmd快捷键大全,,cmd快捷键大全首先介绍第一种方...
-
程式编辑快捷键|代码编辑快捷键
程式编辑快捷键|代码编辑快捷键,,1. 代码编辑快捷键Option Exp...
-
cad布局常用快捷键|cad布局常用快捷键命令
cad布局常用快捷键|cad布局常用快捷键命令,,1. cad布局常用快...