我想随机洗牌文本文件的行,并创建一个新文件。该文件可能有几千行。
我如何用cat, awk, cut等做到这一点?
我想随机洗牌文本文件的行,并创建一个新文件。该文件可能有几千行。
我如何用cat, awk, cut等做到这一点?
给定以下命令,
echo "1: " | awk '/1/ -F ":" {print $1}'
为什么AWK输出:
1:
?
我找到了一些方法来传递外部shell变量到awk脚本,但我对“和”感到困惑。
首先,我尝试了一个shell脚本:
$ v=123test
$ echo $v
123test
$ echo "$v"
123test
然后试试awk:
$ awk 'BEGIN{print "'$v'"}'
$ 123test
$ awk 'BEGIN{print '"$v"'}'
$ 123
为什么会有这样的区别呢?
最后我尝试了这个:
$ awk 'BEGIN{print " '$v' "}'
$ 123test
$ awk 'BEGIN{print ' "$v" '}'
awk: cmd. line:1: BEGIN{print
awk: cmd. line:1: ^ unexpected newline or end of string
我对此感到困惑。
这一行一直工作到第二个字段中出现空白。
svn status | grep '\!' | gawk '{print $2;}' > removedProjs
有没有办法让awk打印所有2美元或更大的东西?(3、4美元. .直到我们不再有专栏了?)
我想我应该补充一点,我正在使用Cygwin在Windows环境中执行此操作。
我使用jq解析一个JSON文件,如下所示。然而,字符串值的结果如预期的那样包含“双引号”,如下所示:
$ cat json.txt | jq '.name'
"Google"
我如何将此管道到另一个命令来删除“”?所以我得到
$ cat json.txt | jq '.name' | some_other_command
Google
我可以使用什么some_other_command ?
awk的区别是什么 sed呢? 什么样的应用最好用 sed和awk工具的案例?
我经常需要在编程期间终止一个进程。
我现在的做法是:
[~]$ ps aux | grep 'python csp_build.py'
user 5124 1.0 0.3 214588 13852 pts/4 Sl+ 11:19 0:00 python csp_build.py
user 5373 0.0 0.0 8096 960 pts/6 S+ 11:20 0:00 grep python csp_build.py
[~]$ kill 5124
如何自动提取进程id并在同一行中杀死它?
是这样的:
[~]$ ps aux | grep 'python csp_build.py' | kill <regex that returns the pid>
有没有一种“规范”的方法?我一直在使用head-n|tail-1来完成这个任务,但我一直在想是否有一个Bash工具专门从文件中提取一行(或一系列行)。
我所说的“规范”是指一个主要功能就是这样做的程序。
我如何查找并替换每次出现的:
subdomainA.example.com
具有
subdomainB.example.com
递归地在/home/www/目录树下的每个文本文件中?