我用来grep
搜索 1 TB 的文件。我想要 grep 文件名并将名称放入文本文件中,并且我想要与cp
dir 匹配的所有文件/home/user/matches
。我想完成这两项任务,而无需使用 grep 两次搜索所有文件。
我的想法是使用 grep 将文件名输出放入文本文件中
grep -ril "xxx" . >> /home/user/matches/output-filename.txt
Run Code Online (Sandbox Code Playgroud)
现在用作output-filename.txt
cp 的输入并使 cp 逐行执行。我怎么做?awk?或者你们有其他想法来避免两次搜索所有文件
我有一个csv
包含不同收入的文件。我想按收入从高到低对 csv 文件进行排序。我无法找到如何在不使用 python 的情况下在终端中执行此操作。
我不想使用Python。
我想使用简单的东西,比如mlr
// 。sed
awk
输入:
name,location,capital,profit-lost,revenue,employees,year
company1,location1,35527.19,-33226.25,,0.70,2020
company2,location2,-155921.70,-146.03,,,2020
company3,location3,1873134.74,778424.56,13320152.32,16.90,2020
company4,location4,1050987.60,426317.61,,24.90,2021
company5,location5,368506.18,11997.04,,,2019
company6,location6,7965648.89,369947.14,64413602.44,103.30,2019
company7,location7,1531534.27,125750.94,3054307.36,12.10,2020
company8,location8,6161574.62,906591.96,124804038.64,51.30,2021
Run Code Online (Sandbox Code Playgroud)
输出:
name,location,capital,profit-lost,revenue,employees,year
company8,location8,6161574.62,906591.96,124804038.64,51.30,2021
company6,location6,7965648.89,369947.14,64413602.44,103.30,2019
company3,location3,1873134.74,778424.56,13320152.32,16.90,2020
company7,location7,1531534.27,125750.94,3054307.36,12.10,2020
company1,location1,35527.19,-33226.25,,0.70,2020
company2,location2,-155921.70,-146.03,,,2020
company4,location4,1050987.60,426317.61,,24.90,2021
company5,location5,368506.18,11997.04,,,2019
Run Code Online (Sandbox Code Playgroud)
收入空到几十亿。
希望有人也能帮助我解决这个问题
我有一个txt
格式的文件,我想将其转换为csv
. 每个字段之间都有空格块。每个字段之间的空格数量并不相同。
是否有使用 sed 或 awk 的命令将具有 3 个或更多空格的块替换为,
. 如果只有 2 个空格,则需要忽略它,以避免数据中的双空格被替换为,
输入:
A_DRIVERLICENSENUMBER_ A_PRIORADDRESS2_ A_MONTHLYRENT_ A_EMPLOYEEID_ A_WORKPHONESPECIALINSTR_ A_REFDETAIL_ A_VERBALPLEDGE
input example,input2 example
Run Code Online (Sandbox Code Playgroud)
输出:
A_DRIVERLICENSENUMBER_,A_PRIORADDRESS2_,A_MONTHLYRENT_,A_EMPLOYEEID,A_WORKPHONESPECIALINSTR_,A_REFDETAIL_,A_VERBALPLEDGE
input example,input2 example
Run Code Online (Sandbox Code Playgroud)
我在互联网上找不到如何执行此操作。我确信这里有人可以帮助我
我想在我的csv
文件中添加一列,其中包含随机创建的“案例编号”。案例编号的前 2 个字母必须是 AZ 中的任意大写字母。接下来是 5 个随机数。
输入:
COMPANY,NAME,STREET,ZIP,CITY,IBAN
Test Ltd,John,Big Ben 343,4343,London,UK2348020384
Test Ltd,Kate,Big Ben 343,4343,London,UK4389223892
Test Ltd,Jake,Big Ben 343,4343,London,UK3892898999
Run Code Online (Sandbox Code Playgroud)
输出
COMPANY,NAME,STREET,ZIP,CITY,IBAN,CASENUMBER
Test Ltd,John,Big Ben 343,4343,London,UK2348020384,IN84903
Test Ltd,Kate,Big Ben 343,4343,London,UK4389223892,TY93842
Test Ltd,Jake,Big Ben 343,4343,London,UK3892898999,OL34307
Run Code Online (Sandbox Code Playgroud)
如何与米勒一起做到这一点?我准备好了以下命令
mlr -I --csv put '${CASENUMBER}=xxx' then \
reorder -f COMPANY,NAME,STREET,ZIP,CITY,IBAN,CASENUMBER input/input.csv
Run Code Online (Sandbox Code Playgroud)
到底要在上面的命令中添加什么?
我想将列复制NAME
到列NAME-LOWERCASE
。NAME-LOWERCASE
应该只包含小写字母。除此以外,所有列中的大写字母均应保持不变NAME-LOWERCASE
输入
NAME,test
PTC,N
Agri,Y
E-example,N
ForYou,N
Willy Nes,Y
Run Code Online (Sandbox Code Playgroud)
输出
NAME,NAME-LOWERCASE,test
PTC,ptc,N
Agri,agri,Y
E-example,E-example,N
ForYou,foryou,N
Willy Nes,willy nes,Y
Run Code Online (Sandbox Code Playgroud)
我知道如何从另一列创建新列并重新排序
mlr -I --csv \
put '$FIRSTNAME = sub($FULLNAME," .*","")' then \
reorder -f FULLNAME,LASTNAME,EMAIL,DOMAIN,COMPANY input.csv
Run Code Online (Sandbox Code Playgroud)
我知道如何将大写转换为小写
mlr --csv -N case -l
Run Code Online (Sandbox Code Playgroud)
如何组合这两个命令?或者还有另一个米勒命令来实现我的目标?