$ hg status
Run Code Online (Sandbox Code Playgroud)
和
$ hg status --ignored
Run Code Online (Sandbox Code Playgroud)
给出非常相似的输出.我想连接它们以便我可以将它们提供给awk,好像有一个hg状态--all(或svn的svn状态--no-ignore)
我想的是:
$ echo "$(hg status)" "$(hg status --ignored)" | awk ' ( $1 == "?" ) || ( $1 == "I") { print $2 }' | xargs rm -r
Run Code Online (Sandbox Code Playgroud)
制作一个"确实非常干净"的命令,但它似乎偶尔会留下一个文件,可能是因为新行缺失或其他东西.
我有一个CSV.我想编辑CSV的第35个字段并将更改写回第35个字段.这就是我在bash上所做的事情:
awk -F "," '{print $35}' test.csv | sed -i 's/^0/+91/g'
Run Code Online (Sandbox Code Playgroud)
所以,我使用awk拉出第35个条目,然后用"+91"替换字符串中起始位置的"0".这个工作perfet我在控制台上获得所需的输出.
现在我想要将这个新条目写入文件中.我正在考虑sed的"in -place"替换功能,但这个胎儿需要和输入文件.在上面的命令中,我无法提供输入文件,因为我的主命令是awk而sed正在从awk获取输入.
谢谢.
我有一个名为domain的文件,其中包含一些域名.例如:
google.com
facebook.com
...
yahoo.com
Run Code Online (Sandbox Code Playgroud)
我有另一个名为site的文件,其中包含一些网站的URL和数字.例如:
image.google.com 10
map.google.com 8
...
photo.facebook.com 22
game.facebook.com 15
..
Run Code Online (Sandbox Code Playgroud)
现在我要计算每个域名的网址号.例如:google.com有10 + 8.所以我写了一个像这样的awk脚本:
BEGIN{
while(getline dom < "./domain" > 0) {
domain[dom]=0;
}
for(dom in domain) {
while(getline < "./site" > 0) {
if($1 ~/$dom$) #if $1 end with $dom {
domain[dom]+=$2;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
但代码if($1 ~/$dom$)并不像我想的那样运行.因为正则表达式中的变量$ dom是按字面解释的.所以,第一个问题是:
有没有办法$dom在正则表达式中使用变量?
然后,因为我刚开始编写脚本
有没有更好的方法来解决我的问题?
我想A在文本文件的每一行的末尾添加字符.我怎么能用awk做到这一点?
1AAB
VBNM
JHTF
2SDA
Run Code Online (Sandbox Code Playgroud)
期望的输出
1AABA
VBNMA
JHTFA
2SDAA
Run Code Online (Sandbox Code Playgroud) 是否可以在AWK中初始化这样的数组?
Colors[1] = ("Red", "Green", "Blue")
Colors[2] = ("Yellow", "Cyan", "Purple")
Run Code Online (Sandbox Code Playgroud)
然后有一个二维数组,其中Colors [2,3] ="Purple".
从另一个线程我明白这是不可能的("遗憾的是,没有办法在不滥用split()的情况下一次设置一个数组").无论如何,我想100%肯定,我确信还有其他人有同样的问题.
我正在寻找最简单的方法来初始化像上面那样的数组,将它编写得很好.
我在一个文件中有数据,其中一列是日期列,其日期格式如下:
2021-05-10T18:25:00.000+0100
2021-05-14T18:25:00.000+0100
2021-05-19T18:25:00.000+0100
Run Code Online (Sandbox Code Playgroud)
预期输出为:
10 MAY 2021
14 MAY 2021
19 MAY 2021
Run Code Online (Sandbox Code Playgroud)
我尝试过的方法:
while -r read line
do
year=`echo $line | awk '{ print $1 }' `
month=`echo $line | awk '{ print $2 }' `
dt=`echo $line | awk '{ print $3 }' `
v=$dt"-"$month"-"$year
d=date '`$v' | dd-mm-yyyy
echo $d
done < /f/filename.txt
Run Code Online (Sandbox Code Playgroud) 我使用awk来计算csv文件中一列的总和.数据格式如下:
id, name, value
1, foo, 17
2, bar, 76
3, "I am the, question", 99
Run Code Online (Sandbox Code Playgroud)
我使用这个awk脚本来计算总和:
awk -F, '{sum+=$3} END {print sum}'
Run Code Online (Sandbox Code Playgroud)
name字段中的某些值包含逗号,这会破坏我的awk脚本.我的问题是:能解决这个问题吗?如果是的话,我该怎么做?
谢谢.
我有以下数据集(所有正值)
输入文件
1 2.3456
1 5.02
2 3.9763333
2 0.123
Run Code Online (Sandbox Code Playgroud)
我想截断第二列中的数字并丢弃其非整数部分.
怎么会在awk中做到这一点?
期望的输出文件
1 2
1 5
2 3
2 0
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.
我有一个看起来像这样的文件:
2011-03-21 name001 line1
2011-03-21 name002 line2
2011-03-21 name003 line3
2011-03-22 name002 line4
2011-03-22 name001 line5
Run Code Online (Sandbox Code Playgroud)
对于每个名字,我只想要它的最后一次出现.所以,我希望结果如下:
2011-03-21 name003 line3
2011-03-22 name002 line4
2011-03-22 name001 line5
Run Code Online (Sandbox Code Playgroud)
有人可以用bash/awk/sed给我一个解决方案吗?