这是我第一次在那里问问题,如果我做错了什么,我很抱歉
考虑一个名为'00.txt‘的文件,它包含以下内容。
ai_00_01_01 word01 word01(translated)
ai_00_01_02 word02 word02(translated)
...
ai_00_01_305 word305 word305(translated)P.S. (已翻译)并不意味着那里真的有一个(),它只是该行单词的另一种语言
我希望它变成这样:
word01 = word01(translated)
word02 = word02(translated)
...
word305 = word305(translated)我试过的东西:
cut -f 2- -d ' ' 00.txt > new_file.txt“给我file.txt文件中的第二个字段和任何其他字段,使用空格作为分隔符,并将输出定向到new_file.txt”-by ivanivan in https://unix.stackexchange.com/questions/515249/how-to-delete-the-first-word-in-each-line-of-a-file“(我认为这意味着删除文本直到第一个空格?糟糕的英语对不起)
我尝试的代码只在第n个时生成了一个新的txt文件,而00txt文件并没有改变任何东西
感谢所有帮助这个菜鸟的人(也就是我自己)
发布于 2021-03-24 17:36:25
由于您的数据已经由空格分隔,因此您可以使用带有默认分隔符的for /f循环:
for /f "tokens=2,3" %%A in (00.txt) do echo %%A = %%B >>new_file.txt这将获取每行中的第二个和第三个内容,将第二个内容存储在%%A中,将第三个内容存储在%%B中,然后以问题中提到的格式显示这两个内容,并将其重定向到new_file.txt。(请注意,如果您认为要多次运行该脚本,则应该在此之前添加一行以删除new_file.txt,否则只会将这些行附加到现有文件的末尾。)
发布于 2021-03-24 10:06:20
看看像这样的东西是不是你要找的..
% cat stuff.txt
ai_00_01_01 word01 word01(translated)
ai_00_01_02 word02 word02(translated)
ai_00_01_305 word305 word305(translated)% cut -d' ' -f2- stuff.txt > stuff2.txt
输出为:
% cat stuff2.txt
word01 word01(translated)
word02 word02(translated)
word305 word305(translated)然后,您可以按需插入=,如下所示:
% sed 's/ / = /' stuff2.txt
word01 = word01(translated)
word02 = word02(translated)
word305 = word305(translated)然后,全部放在一行中:
% cut -d' ' -f2- stuff.txt | sed 's/ / = /' > stuff2.txt
https://stackoverflow.com/questions/66773701
复制相似问题